move constants out of transformer so that they can be shared with ast

add varargs and kwargs attributes to Function nodes
This commit is contained in:
Jeremy Hylton 2000-02-08 18:57:32 +00:00
parent 69e2c6efbb
commit 9605c11c4c
4 changed files with 18 additions and 16 deletions

View file

@ -1,4 +1,5 @@
import types import types
from consts import CO_VARARGS, CO_VARKEYWORDS
nodes = {} nodes = {}
@ -85,6 +86,12 @@ class Function(Node):
self.code = code self.code = code
self._children = ('function', self._children = ('function',
name, argnames, defaults, flags, doc, code) name, argnames, defaults, flags, doc, code)
self.varargs = self.kwargs = None
if flags & CO_VARARGS:
self.varargs = 1
if flags & CO_VARKEYWORDS:
self.kwargs = 1
def __repr__(self): def __repr__(self):
return "Function(%s,%s,%s,%s,%s,%s)" % self._children[1:] return "Function(%s,%s,%s,%s,%s,%s)" % self._children[1:]

View file

@ -99,14 +99,8 @@ import pprint
error = 'walker.error' error = 'walker.error'
# code flags from consts import CO_VARARGS, CO_VARKEYWORDS
CO_VARARGS = 1 from consts import OP_ASSIGN, OP_DELETE, OP_APPLY
CO_VARKEYWORDS = 2
# operation flags
OP_ASSIGN = 'OP_ASSIGN'
OP_DELETE = 'OP_DELETE'
OP_APPLY = 'OP_APPLY'
def asList(nodes): def asList(nodes):
l = [] l = []

View file

@ -1,4 +1,5 @@
import types import types
from consts import CO_VARARGS, CO_VARKEYWORDS
nodes = {} nodes = {}
@ -85,6 +86,12 @@ class Function(Node):
self.code = code self.code = code
self._children = ('function', self._children = ('function',
name, argnames, defaults, flags, doc, code) name, argnames, defaults, flags, doc, code)
self.varargs = self.kwargs = None
if flags & CO_VARARGS:
self.varargs = 1
if flags & CO_VARKEYWORDS:
self.kwargs = 1
def __repr__(self): def __repr__(self):
return "Function(%s,%s,%s,%s,%s,%s)" % self._children[1:] return "Function(%s,%s,%s,%s,%s,%s)" % self._children[1:]

View file

@ -99,14 +99,8 @@ import pprint
error = 'walker.error' error = 'walker.error'
# code flags from consts import CO_VARARGS, CO_VARKEYWORDS
CO_VARARGS = 1 from consts import OP_ASSIGN, OP_DELETE, OP_APPLY
CO_VARKEYWORDS = 2
# operation flags
OP_ASSIGN = 'OP_ASSIGN'
OP_DELETE = 'OP_DELETE'
OP_APPLY = 'OP_APPLY'
def asList(nodes): def asList(nodes):
l = [] l = []