mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-21 21:52:10 +02:00
Parsing of Variable Objects.
This commit is contained in:
parent
42edb8b4d2
commit
1c66d960ea
7 changed files with 35 additions and 25 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue