From 1c66d960ea5faebdd60868306f14cd56188e88e1 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Tue, 20 Aug 2002 04:29:40 +0000 Subject: [PATCH] Parsing of Variable Objects. --- .../mi/core/output/{MIChild.java => MIVar.java} | 15 +++++++++++---- .../output/{MIChange.java => MIVarChange.java} | 8 ++++++-- .../debug/mi/core/output/MIVarCreateInfo.java | 6 +++--- .../output/MIVarEvaluateExpressionInfo.java | 2 +- .../mi/core/output/MIVarListChildrenInfo.java | 8 ++++---- .../mi/core/output/MIVarShowAttributesInfo.java | 4 ++++ .../debug/mi/core/output/MIVarUpdateInfo.java | 17 ++++++----------- 7 files changed, 35 insertions(+), 25 deletions(-) rename debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/{MIChild.java => MIVar.java} (85%) rename debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/{MIChange.java => MIVarChange.java} (80%) diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChild.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVar.java similarity index 85% rename from debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChild.java rename to debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVar.java index 0dae1a1d476..4e8c2fcd64b 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChild.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVar.java @@ -10,24 +10,25 @@ package org.eclipse.cdt.debug.mi.core.output; * ^done,numchild="6",children={child={name="var2.0",exp="0",numchild="0",type="char"},child={name="var2.1",exp="1",numchild="0",type="char"},child={name="var2.2",exp="2",numchild="0",type="char"},child={name="var2.3",exp="3",numchild="0",type="char"},child={name="var2.4",exp="4",numchild="0",type="char"},child={name="var2.5",exp="5",numchild="0",type="char"}} * */ -public class MIChild { +public class MIVar { String name = ""; String type = ""; + String exp = ""; int numchild; - public MIChild(String n, int num, String t) { + public MIVar(String n, int num, String t) { name = n; numchild = num; type = t; } - public MIChild(MITuple tuple) { + public MIVar(MITuple tuple) { parse(tuple); } - public String getName() { + public String getVarName() { return name; } @@ -39,6 +40,10 @@ public class MIChild { return numchild; } + public String getExp() { + return exp; + } + void parse(MITuple tuple) { MIResult[] results = tuple.getMIResults(); for (int i = 0; i < results.length; i++) { @@ -58,6 +63,8 @@ public class MIChild { name = str; } else if (var.equals("type")) { type = str; + } else if (var.equals("exp")) { + exp = str; } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChange.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarChange.java similarity index 80% rename from debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChange.java rename to debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarChange.java index a82a664ce5b..5018a16dac3 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIChange.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarChange.java @@ -8,15 +8,19 @@ package org.eclipse.cdt.debug.mi.core.output; * GDB/MI var-update. */ -public class MIChange { +public class MIVarChange { String name; boolean inScope; boolean changed; - public MIChange(String n) { + public MIVarChange(String n) { name = n; } + public String getVarName() { + return name; + } + public boolean isInScope() { return inScope; } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarCreateInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarCreateInfo.java index 7b1867d1a08..c86434b95cc 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarCreateInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarCreateInfo.java @@ -15,16 +15,16 @@ public class MIVarCreateInfo extends MIInfo { String name = ""; int numChild; String type = ""; - MIChild child; + MIVar child; public MIVarCreateInfo(MIOutput record) { super(record); parse(); } - public MIChild getMIChild() { + public MIVar getMIVar() { if (child == null) { - child = new MIChild(name, numChild, type); + child = new MIVar(name, numChild, type); } return child; } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarEvaluateExpressionInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarEvaluateExpressionInfo.java index 6161ba8c2c8..dc9e44b2334 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarEvaluateExpressionInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarEvaluateExpressionInfo.java @@ -28,7 +28,7 @@ public class MIVarEvaluateExpressionInfo extends MIInfo { MIResult[] results = rr.getMIResults(); for (int i = 0; i < results.length; i++) { String var = results[i].getVariable(); - if (var.equals("name")) { + if (var.equals("value")) { MIValue val = results[i].getMIValue(); if (val instanceof MIConst) { value = ((MIConst)val).getString(); diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java index ad3838c39d7..569d97a5e89 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarListChildrenInfo.java @@ -15,7 +15,7 @@ import java.util.List; */ public class MIVarListChildrenInfo extends MIInfo { - MIChild[] children; + MIVar[] children; int numchild; public MIVarListChildrenInfo(MIOutput record) { @@ -23,7 +23,7 @@ public class MIVarListChildrenInfo extends MIInfo { parse(); } - public MIChild[] getChildren() { + public MIVar[] getMIVars() { return children; } @@ -54,7 +54,7 @@ public class MIVarListChildrenInfo extends MIInfo { } } } - children = (MIChild[])aList.toArray(new MIChild[aList.size()]); + children = (MIVar[])aList.toArray(new MIVar[aList.size()]); } void parseChildren(MITuple tuple, List aList) { @@ -64,7 +64,7 @@ public class MIVarListChildrenInfo extends MIInfo { if (var.equals("child")) { MIValue value = results[i].getMIValue(); if (value instanceof MITuple) { - aList.add(new MIChild((MITuple)value)); + aList.add(new MIVar((MITuple)value)); } } } diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowAttributesInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowAttributesInfo.java index 206ad6edac6..67b428d36bd 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowAttributesInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarShowAttributesInfo.java @@ -20,6 +20,10 @@ public class MIVarShowAttributesInfo extends MIInfo { return attr; } + public boolean isEditable() { + return attr.equals("editable"); + } + void parse() { if (isDone()) { MIOutput out = getMIOutput(); diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarUpdateInfo.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarUpdateInfo.java index 2b553c99af0..6351d92f788 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarUpdateInfo.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/output/MIVarUpdateInfo.java @@ -14,20 +14,14 @@ import java.util.List; */ public class MIVarUpdateInfo extends MIInfo { - public class Change { - String name; - boolean inScope; - boolean changed; - } - - MIChange[] changeList; + MIVarChange[] changeList; public MIVarUpdateInfo(MIOutput record) { super(record); parse(); } - public MIChange[] getChangeList () { + public MIVarChange[] getMIVarChanges() { return changeList; } @@ -49,12 +43,12 @@ public class MIVarUpdateInfo extends MIInfo { } } } - changeList = (MIChange[])aList.toArray(new MIChange[aList.size()]); + changeList = (MIVarChange[])aList.toArray(new MIVarChange[aList.size()]); } void parseChangeList(MITuple tuple, List aList) { MIResult[] results = tuple.getMIResults(); - MIChange change = null; + MIVarChange change = null; for (int i = 0; i < results.length; i++) { String var = results[i].getVariable(); MIValue value = results[i].getMIValue(); @@ -63,7 +57,8 @@ public class MIVarUpdateInfo extends MIInfo { str = ((MIConst)value).getString(); } if (var.equals("name")) { - change = new MIChange(str); + change = new MIVarChange(str); +System.out.println("Changelist " + str); aList.add(change); } else if (var.equals("in_scope")) { if (change != null) {