Skip to content

Commit 7780fd9

Browse files
committed
Make PythonTree's toStringTree more easily comparable with ast/astview.py
output. This will help with the walkerless Python.g, as it doesn't quite parse ast/astview.py yet.
1 parent 5767488 commit 7780fd9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+380
-235
lines changed

ast/asdl_antlr.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -308,12 +308,13 @@ def javaMethods(self, type, clsname, ctorname, fields, depth):
308308

309309
# The toStringTree() method
310310
self.emit("public String toStringTree() {", depth)
311-
self.emit('StringBuffer sb = new StringBuffer("%s[");' % clsname,
311+
self.emit('StringBuffer sb = new StringBuffer("%s(");' % clsname,
312312
depth+1)
313313
for f in fields:
314314
self.emit('sb.append("%s=");' % f.name, depth+1)
315-
self.emit("sb.append(this.%s);" % f.name, depth+1)
316-
self.emit('sb.append("]");', depth+1)
315+
self.emit("sb.append(dumpThis(%s));" % f.name, depth+1)
316+
self.emit('sb.append(",");', depth+1)
317+
self.emit('sb.append(")");', depth+1)
317318
self.emit("return sb.toString();", depth+1)
318319
self.emit("}", depth)
319320
self.emit("", 0)

src/org/python/antlr/PythonTree.java

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,12 @@ public String info() {
8383

8484
public String toStringTree() {
8585
if (children == null || children.size() == 0) {
86-
// System.out.println("Where are my children? -- asks " + token.getText());
87-
return this.toString() + "[" + this.info() + "]";
86+
return this.toString();// + "[" + this.info() + "]";
8887
}
8988
StringBuffer buf = new StringBuffer();
9089
if (!isNil()) {
9190
buf.append("(");
92-
buf.append(this.toString() + "[" + this.info() + "]");
91+
buf.append(this.toString());// + "[" + this.info() + "]");
9392
buf.append(' ');
9493
}
9594
for (int i = 0; children != null && i < children.size(); i++) {
@@ -105,6 +104,34 @@ public String toStringTree() {
105104
return buf.toString();
106105
}
107106

107+
protected String dumpThis(String s) {
108+
return s;
109+
}
110+
111+
protected String dumpThis(Object o) {
112+
if (o instanceof PythonTree) {
113+
return ((PythonTree)o).toStringTree();
114+
}
115+
return String.valueOf(o);
116+
}
117+
118+
protected String dumpThis(Object[] s) {
119+
StringBuffer sb = new StringBuffer();
120+
if (s == null) {
121+
sb.append("null");
122+
} else {
123+
sb.append("(");
124+
for (int i = 0; i < s.length; i++) {
125+
if (i > 0)
126+
sb.append(", ");
127+
sb.append(dumpThis(s[i]));
128+
}
129+
sb.append(")");
130+
}
131+
132+
return sb.toString();
133+
}
134+
108135
public <R> R accept(VisitorIF<R> visitor) throws Exception {
109136
throw new RuntimeException("Unexpected node: " + this);
110137
}

src/org/python/antlr/ast/Assert.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,14 @@ public String toString() {
3535
}
3636

3737
public String toStringTree() {
38-
StringBuffer sb = new StringBuffer("Assert[");
38+
StringBuffer sb = new StringBuffer("Assert(");
3939
sb.append("test=");
40-
sb.append(this.test);
40+
sb.append(dumpThis(test));
41+
sb.append(",");
4142
sb.append("msg=");
42-
sb.append(this.msg);
43-
sb.append("]");
43+
sb.append(dumpThis(msg));
44+
sb.append(",");
45+
sb.append(")");
4446
return sb.toString();
4547
}
4648

src/org/python/antlr/ast/Assign.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,14 @@ public String toString() {
5050
}
5151

5252
public String toStringTree() {
53-
StringBuffer sb = new StringBuffer("Assign[");
53+
StringBuffer sb = new StringBuffer("Assign(");
5454
sb.append("targets=");
55-
sb.append(this.targets);
55+
sb.append(dumpThis(targets));
56+
sb.append(",");
5657
sb.append("value=");
57-
sb.append(this.value);
58-
sb.append("]");
58+
sb.append(dumpThis(value));
59+
sb.append(",");
60+
sb.append(")");
5961
return sb.toString();
6062
}
6163

src/org/python/antlr/ast/Attribute.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,17 @@ public String toString() {
4242
}
4343

4444
public String toStringTree() {
45-
StringBuffer sb = new StringBuffer("Attribute[");
45+
StringBuffer sb = new StringBuffer("Attribute(");
4646
sb.append("value=");
47-
sb.append(this.value);
47+
sb.append(dumpThis(value));
48+
sb.append(",");
4849
sb.append("attr=");
49-
sb.append(this.attr);
50+
sb.append(dumpThis(attr));
51+
sb.append(",");
5052
sb.append("ctx=");
51-
sb.append(this.ctx);
52-
sb.append("]");
53+
sb.append(dumpThis(ctx));
54+
sb.append(",");
55+
sb.append(")");
5356
return sb.toString();
5457
}
5558

src/org/python/antlr/ast/AugAssign.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,17 @@ public String toString() {
4242
}
4343

4444
public String toStringTree() {
45-
StringBuffer sb = new StringBuffer("AugAssign[");
45+
StringBuffer sb = new StringBuffer("AugAssign(");
4646
sb.append("target=");
47-
sb.append(this.target);
47+
sb.append(dumpThis(target));
48+
sb.append(",");
4849
sb.append("op=");
49-
sb.append(this.op);
50+
sb.append(dumpThis(op));
51+
sb.append(",");
5052
sb.append("value=");
51-
sb.append(this.value);
52-
sb.append("]");
53+
sb.append(dumpThis(value));
54+
sb.append(",");
55+
sb.append(")");
5356
return sb.toString();
5457
}
5558

src/org/python/antlr/ast/BinOp.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,17 @@ public String toString() {
4141
}
4242

4343
public String toStringTree() {
44-
StringBuffer sb = new StringBuffer("BinOp[");
44+
StringBuffer sb = new StringBuffer("BinOp(");
4545
sb.append("left=");
46-
sb.append(this.left);
46+
sb.append(dumpThis(left));
47+
sb.append(",");
4748
sb.append("op=");
48-
sb.append(this.op);
49+
sb.append(dumpThis(op));
50+
sb.append(",");
4951
sb.append("right=");
50-
sb.append(this.right);
51-
sb.append("]");
52+
sb.append(dumpThis(right));
53+
sb.append(",");
54+
sb.append(")");
5255
return sb.toString();
5356
}
5457

src/org/python/antlr/ast/BoolOp.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,14 @@ public String toString() {
5050
}
5151

5252
public String toStringTree() {
53-
StringBuffer sb = new StringBuffer("BoolOp[");
53+
StringBuffer sb = new StringBuffer("BoolOp(");
5454
sb.append("op=");
55-
sb.append(this.op);
55+
sb.append(dumpThis(op));
56+
sb.append(",");
5657
sb.append("values=");
57-
sb.append(this.values);
58-
sb.append("]");
58+
sb.append(dumpThis(values));
59+
sb.append(",");
60+
sb.append(")");
5961
return sb.toString();
6062
}
6163

src/org/python/antlr/ast/Break.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public String toString() {
2727
}
2828

2929
public String toStringTree() {
30-
StringBuffer sb = new StringBuffer("Break[");
31-
sb.append("]");
30+
StringBuffer sb = new StringBuffer("Break(");
31+
sb.append(")");
3232
return sb.toString();
3333
}
3434

src/org/python/antlr/ast/Call.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,23 @@ public String toString() {
8181
}
8282

8383
public String toStringTree() {
84-
StringBuffer sb = new StringBuffer("Call[");
84+
StringBuffer sb = new StringBuffer("Call(");
8585
sb.append("func=");
86-
sb.append(this.func);
86+
sb.append(dumpThis(func));
87+
sb.append(",");
8788
sb.append("args=");
88-
sb.append(this.args);
89+
sb.append(dumpThis(args));
90+
sb.append(",");
8991
sb.append("keywords=");
90-
sb.append(this.keywords);
92+
sb.append(dumpThis(keywords));
93+
sb.append(",");
9194
sb.append("starargs=");
92-
sb.append(this.starargs);
95+
sb.append(dumpThis(starargs));
96+
sb.append(",");
9397
sb.append("kwargs=");
94-
sb.append(this.kwargs);
95-
sb.append("]");
98+
sb.append(dumpThis(kwargs));
99+
sb.append(",");
100+
sb.append(")");
96101
return sb.toString();
97102
}
98103

0 commit comments

Comments
 (0)