[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