[Python-checkins] python/dist/src/Tools/compiler ast.txt, 1.5, 1.6 astgen.py, 1.7, 1.8 regrtest.py, 1.4, 1.5

anthonybaxter at users.sourceforge.net anthonybaxter at users.sourceforge.net
Mon Aug 2 08:10:13 CEST 2004


Update of /cvsroot/python/python/dist/src/Tools/compiler
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6086/Tools/compiler

Modified Files:
	ast.txt astgen.py regrtest.py 
Log Message:
PEP-0318, @decorator-style. In Guido's words:
"@ seems the syntax that everybody can hate equally"
Implementation by Mark Russell, from SF #979728.


Index: ast.txt
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/ast.txt,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** ast.txt	19 May 2004 08:20:33 -0000	1.5
--- ast.txt	2 Aug 2004 06:10:11 -0000	1.6
***************
*** 9,13 ****
  Module: doc*, node
  Stmt: nodes!
! Function: name*, argnames*, defaults!, flags*, doc*, code
  Lambda: argnames*, defaults!, flags*, code
  Class: name*, bases!, doc*, code
--- 9,14 ----
  Module: doc*, node
  Stmt: nodes!
! Decorators: nodes!
! Function: decorators&, name*, argnames*, defaults!, flags*, doc*, code
  Lambda: argnames*, defaults!, flags*, code
  Class: name*, bases!, doc*, code

Index: astgen.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/astgen.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** astgen.py	18 Jul 2004 06:02:02 -0000	1.7
--- astgen.py	2 Aug 2004 06:10:11 -0000	1.8
***************
*** 155,164 ****
                      print >> buf, "        return %s" % COMMA.join(clist)
              else:
!                 print >> buf, "        nodes = []"
!                 template = "        nodes.%s(%sself.%s%s)"
                  for name in self.argnames:
                      if self.argprops[name] == P_NONE:
                          tmp = ("        if self.%s is not None:"
!                                "            nodes.append(self.%s)")
                          print >> buf, tmp % (name, name)
                      elif self.argprops[name] == P_NESTED:
--- 155,164 ----
                      print >> buf, "        return %s" % COMMA.join(clist)
              else:
!                 print >> buf, "        nodelist = []"
!                 template = "        nodelist.%s(%sself.%s%s)"
                  for name in self.argnames:
                      if self.argprops[name] == P_NONE:
                          tmp = ("        if self.%s is not None:"
!                                "            nodelist.append(self.%s)")
                          print >> buf, tmp % (name, name)
                      elif self.argprops[name] == P_NESTED:
***************
*** 167,171 ****
                      elif self.argprops[name] == P_NODE:
                          print >> buf, template % ("append", "", name, "")
!                 print >> buf, "        return tuple(nodes)"
  
      def _gen_repr(self, buf):
--- 167,171 ----
                      elif self.argprops[name] == P_NODE:
                          print >> buf, template % ("append", "", name, "")
!                 print >> buf, "        return tuple(nodelist)"
  
      def _gen_repr(self, buf):
***************
*** 209,213 ****
              name = mo.group(1)
              cur = classes[name]
!     return classes.values()
  
  def main():
--- 209,213 ----
              name = mo.group(1)
              cur = classes[name]
!     return sorted(classes.values(), key=lambda n: n.name)
  
  def main():
***************
*** 246,252 ****
      return [n for n in flatten(list) if isinstance(n, Node)]
  
! def asList(nodes):
      l = []
!     for item in nodes:
          if hasattr(item, "asList"):
              l.append(item.asList())
--- 246,252 ----
      return [n for n in flatten(list) if isinstance(n, Node)]
  
! def asList(nodearg):
      l = []
!     for item in nodearg:
          if hasattr(item, "asList"):
              l.append(item.asList())
***************
*** 275,278 ****
--- 275,293 ----
      pass
  
+ class Expression(Node):
+     # Expression is an artificial node class to support "eval"
+     nodes["expression"] = "Expression"
+     def __init__(self, node):
+         self.node = node
+ 
+     def getChildren(self):
+         return self.node,
+ 
+     def getChildNodes(self):
+         return self.node,
+ 
+     def __repr__(self):
+         return "Expression(%s)" % (repr(self.node))
+ 
  ### EPILOGUE
  klasses = globals()

Index: regrtest.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/regrtest.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** regrtest.py	9 Aug 2002 16:37:36 -0000	1.4
--- regrtest.py	2 Aug 2004 06:10:11 -0000	1.5
***************
*** 48,51 ****
--- 48,53 ----
              # make sure the .pyc file is not over-written
              os.chmod(source + "c", 444)
+         elif file == 'CVS':
+             pass
          else:
              path = os.path.join(dir, file)



More information about the Python-checkins mailing list