| """Python abstract syntax node definitions |
| |
| This file is automatically generated. |
| """ |
| from types import TupleType, ListType |
| from consts import CO_VARARGS, CO_VARKEYWORDS |
| |
| def flatten(list): |
| l = [] |
| for elt in list: |
| t = type(elt) |
| if t is TupleType or t is ListType: |
| for elt2 in flatten(elt): |
| l.append(elt2) |
| else: |
| l.append(elt) |
| return l |
| |
| def asList(nodes): |
| l = [] |
| for item in nodes: |
| if hasattr(item, "asList"): |
| l.append(item.asList()) |
| else: |
| t = type(item) |
| if t is TupleType or t is ListType: |
| l.append(tuple(asList(item))) |
| else: |
| l.append(item) |
| return l |
| |
| nodes = {} |
| |
| class Node: |
| lineno = None |
| def getType(self): |
| pass |
| def getChildren(self): |
| # XXX It would be better to generate flat values to begin with |
| return flatten(self._getChildren()) |
| def asList(self): |
| return tuple(asList(self.getChildren())) |
| |
| class EmptyNode(Node): |
| def __init__(self): |
| self.lineno = None |
| |
| class If(Node): |
| nodes["if"] = "If" |
| def __init__(self, tests, else_): |
| self.tests = tests |
| self.else_ = else_ |
| def _getChildren(self): |
| return self.tests, self.else_ |
| def __repr__(self): |
| return "If(%s, %s)" % (repr(self.tests), repr(self.else_)) |
| |
| class ListComp(Node): |
| nodes["listcomp"] = "ListComp" |
| def __init__(self, expr, quals): |
| self.expr = expr |
| self.quals = quals |
| def _getChildren(self): |
| return self.expr, self.quals |
| def __repr__(self): |
| return "ListComp(%s, %s)" % (repr(self.expr), repr(self.quals)) |
| |
| class Bitor(Node): |
| nodes["bitor"] = "Bitor" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "Bitor(%s)" % (repr(self.nodes),) |
| |
| class Pass(Node): |
| nodes["pass"] = "Pass" |
| def __init__(self, ): |
| pass |
| def _getChildren(self): |
| return () |
| def __repr__(self): |
| return "Pass()" |
| |
| class Module(Node): |
| nodes["module"] = "Module" |
| def __init__(self, doc, node): |
| self.doc = doc |
| self.node = node |
| def _getChildren(self): |
| return self.doc, self.node |
| def __repr__(self): |
| return "Module(%s, %s)" % (repr(self.doc), repr(self.node)) |
| |
| class Global(Node): |
| nodes["global"] = "Global" |
| def __init__(self, names): |
| self.names = names |
| def _getChildren(self): |
| return self.names, |
| def __repr__(self): |
| return "Global(%s)" % (repr(self.names),) |
| |
| class CallFunc(Node): |
| nodes["callfunc"] = "CallFunc" |
| def __init__(self, node, args, star_args = None, dstar_args = None): |
| self.node = node |
| self.args = args |
| self.star_args = star_args |
| self.dstar_args = dstar_args |
| def _getChildren(self): |
| return self.node, self.args, self.star_args, self.dstar_args |
| def __repr__(self): |
| return "CallFunc(%s, %s, %s, %s)" % (repr(self.node), repr(self.args), repr(self.star_args), repr(self.dstar_args)) |
| |
| class Printnl(Node): |
| nodes["printnl"] = "Printnl" |
| def __init__(self, nodes, dest): |
| self.nodes = nodes |
| self.dest = dest |
| def _getChildren(self): |
| return self.nodes, self.dest |
| def __repr__(self): |
| return "Printnl(%s, %s)" % (repr(self.nodes), repr(self.dest)) |
| |
| class Tuple(Node): |
| nodes["tuple"] = "Tuple" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "Tuple(%s)" % (repr(self.nodes),) |
| |
| class Compare(Node): |
| nodes["compare"] = "Compare" |
| def __init__(self, expr, ops): |
| self.expr = expr |
| self.ops = ops |
| def _getChildren(self): |
| return self.expr, self.ops |
| def __repr__(self): |
| return "Compare(%s, %s)" % (repr(self.expr), repr(self.ops)) |
| |
| class And(Node): |
| nodes["and"] = "And" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "And(%s)" % (repr(self.nodes),) |
| |
| class Lambda(Node): |
| nodes["lambda"] = "Lambda" |
| def __init__(self, argnames, defaults, flags, code): |
| self.argnames = argnames |
| self.defaults = defaults |
| self.flags = flags |
| self.code = code |
| self.varargs = self.kwargs = None |
| if flags & CO_VARARGS: |
| self.varargs = 1 |
| if flags & CO_VARKEYWORDS: |
| self.kwargs = 1 |
| |
| def _getChildren(self): |
| return self.argnames, self.defaults, self.flags, self.code |
| def __repr__(self): |
| return "Lambda(%s, %s, %s, %s)" % (repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.code)) |
| |
| class Assign(Node): |
| nodes["assign"] = "Assign" |
| def __init__(self, nodes, expr): |
| self.nodes = nodes |
| self.expr = expr |
| def _getChildren(self): |
| return self.nodes, self.expr |
| def __repr__(self): |
| return "Assign(%s, %s)" % (repr(self.nodes), repr(self.expr)) |
| |
| class Sub(Node): |
| nodes["sub"] = "Sub" |
| def __init__(self, (left, right)): |
| self.left = left |
| self.right = right |
| def _getChildren(self): |
| return self.left, self.right |
| def __repr__(self): |
| return "Sub(%s, %s)" % (repr(self.left), repr(self.right)) |
| |
| class ListCompIf(Node): |
| nodes["listcompif"] = "ListCompIf" |
| def __init__(self, test): |
| self.test = test |
| def _getChildren(self): |
| return self.test, |
| def __repr__(self): |
| return "ListCompIf(%s)" % (repr(self.test),) |
| |
| class Div(Node): |
| nodes["div"] = "Div" |
| def __init__(self, (left, right)): |
| self.left = left |
| self.right = right |
| def _getChildren(self): |
| return self.left, self.right |
| def __repr__(self): |
| return "Div(%s, %s)" % (repr(self.left), repr(self.right)) |
| |
| class Discard(Node): |
| nodes["discard"] = "Discard" |
| def __init__(self, expr): |
| self.expr = expr |
| def _getChildren(self): |
| return self.expr, |
| def __repr__(self): |
| return "Discard(%s)" % (repr(self.expr),) |
| |
| class Backquote(Node): |
| nodes["backquote"] = "Backquote" |
| def __init__(self, expr): |
| self.expr = expr |
| def _getChildren(self): |
| return self.expr, |
| def __repr__(self): |
| return "Backquote(%s)" % (repr(self.expr),) |
| |
| class RightShift(Node): |
| nodes["rightshift"] = "RightShift" |
| def __init__(self, (left, right)): |
| self.left = left |
| self.right = right |
| def _getChildren(self): |
| return self.left, self.right |
| def __repr__(self): |
| return "RightShift(%s, %s)" % (repr(self.left), repr(self.right)) |
| |
| class Continue(Node): |
| nodes["continue"] = "Continue" |
| def __init__(self, ): |
| pass |
| def _getChildren(self): |
| return () |
| def __repr__(self): |
| return "Continue()" |
| |
| class While(Node): |
| nodes["while"] = "While" |
| def __init__(self, test, body, else_): |
| self.test = test |
| self.body = body |
| self.else_ = else_ |
| def _getChildren(self): |
| return self.test, self.body, self.else_ |
| def __repr__(self): |
| return "While(%s, %s, %s)" % (repr(self.test), repr(self.body), repr(self.else_)) |
| |
| class AssName(Node): |
| nodes["assname"] = "AssName" |
| def __init__(self, name, flags): |
| self.name = name |
| self.flags = flags |
| def _getChildren(self): |
| return self.name, self.flags |
| def __repr__(self): |
| return "AssName(%s, %s)" % (repr(self.name), repr(self.flags)) |
| |
| class LeftShift(Node): |
| nodes["leftshift"] = "LeftShift" |
| def __init__(self, (left, right)): |
| self.left = left |
| self.right = right |
| def _getChildren(self): |
| return self.left, self.right |
| def __repr__(self): |
| return "LeftShift(%s, %s)" % (repr(self.left), repr(self.right)) |
| |
| class Mul(Node): |
| nodes["mul"] = "Mul" |
| def __init__(self, (left, right)): |
| self.left = left |
| self.right = right |
| def _getChildren(self): |
| return self.left, self.right |
| def __repr__(self): |
| return "Mul(%s, %s)" % (repr(self.left), repr(self.right)) |
| |
| class List(Node): |
| nodes["list"] = "List" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "List(%s)" % (repr(self.nodes),) |
| |
| class AugAssign(Node): |
| nodes["augassign"] = "AugAssign" |
| def __init__(self, node, op, expr): |
| self.node = node |
| self.op = op |
| self.expr = expr |
| def _getChildren(self): |
| return self.node, self.op, self.expr |
| def __repr__(self): |
| return "AugAssign(%s, %s, %s)" % (repr(self.node), repr(self.op), repr(self.expr)) |
| |
| class Or(Node): |
| nodes["or"] = "Or" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "Or(%s)" % (repr(self.nodes),) |
| |
| class Keyword(Node): |
| nodes["keyword"] = "Keyword" |
| def __init__(self, name, expr): |
| self.name = name |
| self.expr = expr |
| def _getChildren(self): |
| return self.name, self.expr |
| def __repr__(self): |
| return "Keyword(%s, %s)" % (repr(self.name), repr(self.expr)) |
| |
| class AssAttr(Node): |
| nodes["assattr"] = "AssAttr" |
| def __init__(self, expr, attrname, flags): |
| self.expr = expr |
| self.attrname = attrname |
| self.flags = flags |
| def _getChildren(self): |
| return self.expr, self.attrname, self.flags |
| def __repr__(self): |
| return "AssAttr(%s, %s, %s)" % (repr(self.expr), repr(self.attrname), repr(self.flags)) |
| |
| class Const(Node): |
| nodes["const"] = "Const" |
| def __init__(self, value): |
| self.value = value |
| def _getChildren(self): |
| return self.value, |
| def __repr__(self): |
| return "Const(%s)" % (repr(self.value),) |
| |
| class Mod(Node): |
| nodes["mod"] = "Mod" |
| def __init__(self, (left, right)): |
| self.left = left |
| self.right = right |
| def _getChildren(self): |
| return self.left, self.right |
| def __repr__(self): |
| return "Mod(%s, %s)" % (repr(self.left), repr(self.right)) |
| |
| class Class(Node): |
| nodes["class"] = "Class" |
| def __init__(self, name, bases, doc, code): |
| self.name = name |
| self.bases = bases |
| self.doc = doc |
| self.code = code |
| def _getChildren(self): |
| return self.name, self.bases, self.doc, self.code |
| def __repr__(self): |
| return "Class(%s, %s, %s, %s)" % (repr(self.name), repr(self.bases), repr(self.doc), repr(self.code)) |
| |
| class Not(Node): |
| nodes["not"] = "Not" |
| def __init__(self, expr): |
| self.expr = expr |
| def _getChildren(self): |
| return self.expr, |
| def __repr__(self): |
| return "Not(%s)" % (repr(self.expr),) |
| |
| class Bitxor(Node): |
| nodes["bitxor"] = "Bitxor" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "Bitxor(%s)" % (repr(self.nodes),) |
| |
| class TryFinally(Node): |
| nodes["tryfinally"] = "TryFinally" |
| def __init__(self, body, final): |
| self.body = body |
| self.final = final |
| def _getChildren(self): |
| return self.body, self.final |
| def __repr__(self): |
| return "TryFinally(%s, %s)" % (repr(self.body), repr(self.final)) |
| |
| class Bitand(Node): |
| nodes["bitand"] = "Bitand" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "Bitand(%s)" % (repr(self.nodes),) |
| |
| class Break(Node): |
| nodes["break"] = "Break" |
| def __init__(self, ): |
| pass |
| def _getChildren(self): |
| return () |
| def __repr__(self): |
| return "Break()" |
| |
| class Stmt(Node): |
| nodes["stmt"] = "Stmt" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "Stmt(%s)" % (repr(self.nodes),) |
| |
| class Assert(Node): |
| nodes["assert"] = "Assert" |
| def __init__(self, test, fail): |
| self.test = test |
| self.fail = fail |
| def _getChildren(self): |
| return self.test, self.fail |
| def __repr__(self): |
| return "Assert(%s, %s)" % (repr(self.test), repr(self.fail)) |
| |
| class Exec(Node): |
| nodes["exec"] = "Exec" |
| def __init__(self, expr, locals, globals): |
| self.expr = expr |
| self.locals = locals |
| self.globals = globals |
| def _getChildren(self): |
| return self.expr, self.locals, self.globals |
| def __repr__(self): |
| return "Exec(%s, %s, %s)" % (repr(self.expr), repr(self.locals), repr(self.globals)) |
| |
| class Power(Node): |
| nodes["power"] = "Power" |
| def __init__(self, (left, right)): |
| self.left = left |
| self.right = right |
| def _getChildren(self): |
| return self.left, self.right |
| def __repr__(self): |
| return "Power(%s, %s)" % (repr(self.left), repr(self.right)) |
| |
| class Import(Node): |
| nodes["import"] = "Import" |
| def __init__(self, names): |
| self.names = names |
| def _getChildren(self): |
| return self.names, |
| def __repr__(self): |
| return "Import(%s)" % (repr(self.names),) |
| |
| class Return(Node): |
| nodes["return"] = "Return" |
| def __init__(self, value): |
| self.value = value |
| def _getChildren(self): |
| return self.value, |
| def __repr__(self): |
| return "Return(%s)" % (repr(self.value),) |
| |
| class Add(Node): |
| nodes["add"] = "Add" |
| def __init__(self, (left, right)): |
| self.left = left |
| self.right = right |
| def _getChildren(self): |
| return self.left, self.right |
| def __repr__(self): |
| return "Add(%s, %s)" % (repr(self.left), repr(self.right)) |
| |
| class Function(Node): |
| nodes["function"] = "Function" |
| def __init__(self, name, argnames, defaults, flags, doc, code): |
| self.name = name |
| self.argnames = argnames |
| self.defaults = defaults |
| self.flags = flags |
| self.doc = doc |
| self.code = code |
| self.varargs = self.kwargs = None |
| if flags & CO_VARARGS: |
| self.varargs = 1 |
| if flags & CO_VARKEYWORDS: |
| self.kwargs = 1 |
| |
| |
| def _getChildren(self): |
| return self.name, self.argnames, self.defaults, self.flags, self.doc, self.code |
| def __repr__(self): |
| return "Function(%s, %s, %s, %s, %s, %s)" % (repr(self.name), repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.doc), repr(self.code)) |
| |
| class TryExcept(Node): |
| nodes["tryexcept"] = "TryExcept" |
| def __init__(self, body, handlers, else_): |
| self.body = body |
| self.handlers = handlers |
| self.else_ = else_ |
| def _getChildren(self): |
| return self.body, self.handlers, self.else_ |
| def __repr__(self): |
| return "TryExcept(%s, %s, %s)" % (repr(self.body), repr(self.handlers), repr(self.else_)) |
| |
| class Subscript(Node): |
| nodes["subscript"] = "Subscript" |
| def __init__(self, expr, flags, subs): |
| self.expr = expr |
| self.flags = flags |
| self.subs = subs |
| def _getChildren(self): |
| return self.expr, self.flags, self.subs |
| def __repr__(self): |
| return "Subscript(%s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.subs)) |
| |
| class Ellipsis(Node): |
| nodes["ellipsis"] = "Ellipsis" |
| def __init__(self, ): |
| pass |
| def _getChildren(self): |
| return () |
| def __repr__(self): |
| return "Ellipsis()" |
| |
| class Print(Node): |
| nodes["print"] = "Print" |
| def __init__(self, nodes, dest): |
| self.nodes = nodes |
| self.dest = dest |
| def _getChildren(self): |
| return self.nodes, self.dest |
| def __repr__(self): |
| return "Print(%s, %s)" % (repr(self.nodes), repr(self.dest)) |
| |
| class UnaryAdd(Node): |
| nodes["unaryadd"] = "UnaryAdd" |
| def __init__(self, expr): |
| self.expr = expr |
| def _getChildren(self): |
| return self.expr, |
| def __repr__(self): |
| return "UnaryAdd(%s)" % (repr(self.expr),) |
| |
| class ListCompFor(Node): |
| nodes["listcompfor"] = "ListCompFor" |
| def __init__(self, assign, list, ifs): |
| self.assign = assign |
| self.list = list |
| self.ifs = ifs |
| def _getChildren(self): |
| return self.assign, self.list, self.ifs |
| def __repr__(self): |
| return "ListCompFor(%s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.ifs)) |
| |
| class Dict(Node): |
| nodes["dict"] = "Dict" |
| def __init__(self, items): |
| self.items = items |
| def _getChildren(self): |
| return self.items, |
| def __repr__(self): |
| return "Dict(%s)" % (repr(self.items),) |
| |
| class Getattr(Node): |
| nodes["getattr"] = "Getattr" |
| def __init__(self, expr, attrname): |
| self.expr = expr |
| self.attrname = attrname |
| def _getChildren(self): |
| return self.expr, self.attrname |
| def __repr__(self): |
| return "Getattr(%s, %s)" % (repr(self.expr), repr(self.attrname)) |
| |
| class AssList(Node): |
| nodes["asslist"] = "AssList" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "AssList(%s)" % (repr(self.nodes),) |
| |
| class UnarySub(Node): |
| nodes["unarysub"] = "UnarySub" |
| def __init__(self, expr): |
| self.expr = expr |
| def _getChildren(self): |
| return self.expr, |
| def __repr__(self): |
| return "UnarySub(%s)" % (repr(self.expr),) |
| |
| class Sliceobj(Node): |
| nodes["sliceobj"] = "Sliceobj" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "Sliceobj(%s)" % (repr(self.nodes),) |
| |
| class Invert(Node): |
| nodes["invert"] = "Invert" |
| def __init__(self, expr): |
| self.expr = expr |
| def _getChildren(self): |
| return self.expr, |
| def __repr__(self): |
| return "Invert(%s)" % (repr(self.expr),) |
| |
| class Name(Node): |
| nodes["name"] = "Name" |
| def __init__(self, name): |
| self.name = name |
| def _getChildren(self): |
| return self.name, |
| def __repr__(self): |
| return "Name(%s)" % (repr(self.name),) |
| |
| class AssTuple(Node): |
| nodes["asstuple"] = "AssTuple" |
| def __init__(self, nodes): |
| self.nodes = nodes |
| def _getChildren(self): |
| return self.nodes, |
| def __repr__(self): |
| return "AssTuple(%s)" % (repr(self.nodes),) |
| |
| class For(Node): |
| nodes["for"] = "For" |
| def __init__(self, assign, list, body, else_): |
| self.assign = assign |
| self.list = list |
| self.body = body |
| self.else_ = else_ |
| def _getChildren(self): |
| return self.assign, self.list, self.body, self.else_ |
| def __repr__(self): |
| return "For(%s, %s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.body), repr(self.else_)) |
| |
| class Raise(Node): |
| nodes["raise"] = "Raise" |
| def __init__(self, expr1, expr2, expr3): |
| self.expr1 = expr1 |
| self.expr2 = expr2 |
| self.expr3 = expr3 |
| def _getChildren(self): |
| return self.expr1, self.expr2, self.expr3 |
| def __repr__(self): |
| return "Raise(%s, %s, %s)" % (repr(self.expr1), repr(self.expr2), repr(self.expr3)) |
| |
| class From(Node): |
| nodes["from"] = "From" |
| def __init__(self, modname, names): |
| self.modname = modname |
| self.names = names |
| def _getChildren(self): |
| return self.modname, self.names |
| def __repr__(self): |
| return "From(%s, %s)" % (repr(self.modname), repr(self.names)) |
| |
| class Slice(Node): |
| nodes["slice"] = "Slice" |
| def __init__(self, expr, flags, lower, upper): |
| self.expr = expr |
| self.flags = flags |
| self.lower = lower |
| self.upper = upper |
| def _getChildren(self): |
| return self.expr, self.flags, self.lower, self.upper |
| def __repr__(self): |
| return "Slice(%s, %s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.lower), repr(self.upper)) |
| |
| klasses = globals() |
| for k in nodes.keys(): |
| nodes[k] = klasses[nodes[k]] |