[Python-checkins] python/nondist/sandbox/ast asdl_java.py,1.4,1.5

bckfnn@sourceforge.net bckfnn@sourceforge.net
Sun, 21 Apr 2002 04:24:35 -0700


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()