Mailing List Archive

python/nondist/sandbox/ast asdl_java.py,1.4,1.5
Update of /cvsroot/python/python/nondist/sandbox/ast
In directory usw-pr-cvs1:/tmp/cvs-serv4637

Modified Files:
asdl_java.py
Log Message:
Cleanup, added support for 'object' and added null check.



Index: asdl_java.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/ast/asdl_java.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** asdl_java.py 19 Apr 2002 16:24:31 -0000 1.4
--- asdl_java.py 21 Apr 2002 11:24:33 -0000 1.5
***************
*** 132,137 ****
self.emit("", 0)
self.emit("public static final String[] %sTypeNames = new String[] {" %
! name, depth+1);
! self.emit('"<undef>",', depth+2);
for type in sum.types:
self.emit('"%s",' % type.name, depth+2)
--- 132,137 ----
self.emit("", 0)
self.emit("public static final String[] %sTypeNames = new String[] {" %
! name, depth+1)
! self.emit('"<undef>",', depth+2)
for type in sum.types:
self.emit('"%s",' % type.name, depth+2)
***************
*** 154,158 ****
for f in product.fields:
self.visit(f, depth + 1)
! self.emit("", depth);

self.javaMethods(name, "%sType" % name, product.fields, depth+1)
--- 154,158 ----
for f in product.fields:
self.visit(f, depth + 1)
! self.emit("", depth)

self.javaMethods(name, "%sType" % name, product.fields, depth+1)
***************
*** 189,193 ****
self.emit("this.%s = %s;" % (f.name, f.name), depth+1)
self.emit("}", depth)
! self.emit("", 0);

# The toString() method
--- 189,193 ----
self.emit("this.%s = %s;" % (f.name, f.name), depth+1)
self.emit("}", depth)
! self.emit("", 0)

# The toString() method
***************
*** 196,203 ****
depth+1)
for f in fields:
! self.emit('sb.append("%s=");' % f.name, depth+1);
if not self.bltinnames.has_key(str(f.type)) and f.typedef.simple:
self.emit("sb.append(dumpThis(this.%s, %sType.%sTypeNames));" %
! (f.name, f.type, f.type), depth+1);
else:
self.emit("sb.append(dumpThis(this.%s));" % f.name, depth+1)
--- 196,203 ----
depth+1)
for f in fields:
! self.emit('sb.append("%s=");' % f.name, depth+1)
if not self.bltinnames.has_key(str(f.type)) and f.typedef.simple:
self.emit("sb.append(dumpThis(this.%s, %sType.%sTypeNames));" %
! (f.name, f.type, f.type), depth+1)
else:
self.emit("sb.append(dumpThis(this.%s));" % f.name, depth+1)
***************
*** 207,218 ****
self.emit("return sb.toString();", depth+1)
self.emit("}", depth)
! self.emit("", 0);

if clsname == ctorname:
- # The accept() method
- self.emit("public Object accept(Visitor visitor) throws Exception {", depth)
self.emit('return visitor.visit%s(this);' % clsname, depth+1)
! self.emit("}", depth)
! self.emit("", 0);

# The visitChildren() method
--- 207,221 ----
self.emit("return sb.toString();", depth+1)
self.emit("}", depth)
! self.emit("", 0)

+ # The accept() method
+ self.emit("public Object accept(Visitor visitor) throws Exception {", depth)
if clsname == ctorname:
self.emit('return visitor.visit%s(this);' % clsname, depth+1)
! else:
! self.emit('traverse(visitor);' % clsname, depth+1)
! self.emit('return null;' % clsname, depth+1)
! self.emit("}", depth)
! self.emit("", 0)

# The visitChildren() method
***************
*** 224,231 ****
continue
if f.seq:
self.emit('for (int i = 0; i < %s.length; i++) {' % f.name,
! depth+1);
! self.emit('if (%s[i] != null)' % f.name, depth+2)
! self.emit('%s[i].accept(visitor);' % f.name, depth+3)
self.emit('}', depth+1)
else:
--- 227,236 ----
continue
if f.seq:
+ self.emit('if (%s != null) {' % f.name, depth+1)
self.emit('for (int i = 0; i < %s.length; i++) {' % f.name,
! depth+2)
! self.emit('if (%s[i] != null)' % f.name, depth+3)
! self.emit('%s[i].accept(visitor);' % f.name, depth+4)
! self.emit('}', depth+2)
self.emit('}', depth+1)
else:
***************
*** 233,237 ****
self.emit('%s.accept(visitor);' % f.name, depth+2)
self.emit('}', depth)
! self.emit("", 0);

def visitField(self, field, depth):
--- 238,242 ----
self.emit('%s.accept(visitor);' % f.name, depth+2)
self.emit('}', depth)
! self.emit("", 0)

def visitField(self, field, depth):
***************
*** 242,245 ****
--- 247,251 ----
'identifier' : 'String',
'string' : 'String',
+ 'object' : 'org.python.core.PyObject',
}

***************
*** 283,288 ****
self.emit('', 0)

! self.emit("abstract protected Object unhandled_node(SimpleNode node) throws Exception;", 1);
! self.emit("abstract public void traverse(SimpleNode node) throws Exception;", 1);
self.emit('}', 0)
self.close()
--- 289,294 ----
self.emit('', 0)

! self.emit("abstract protected Object unhandled_node(SimpleNode node) throws Exception;", 1)
! self.emit("abstract public void traverse(SimpleNode node) throws Exception;", 1)
self.emit('}', 0)
self.close()