# This file describes the nodes of the AST in ast.py. The module is # generated by astgen.py. # The descriptions use the following special notation to describe # properties of the children: # * this child is not a node # ! this child is a sequence that contains nodes in it # & this child may be set to None # = ... a default value for the node constructor (optional args) # # If you add node types here, please be sure to update the list of # Node types in Doc/lib/asttable.tex. 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 Pass: Break: Continue: For: assign, list, body, else_& While: test, body, else_& With: expr, vars&, body If: tests!, else_& IfExp: test, then, else_ Exec: expr, locals&, globals& From: modname*, names*, level* Import: names* Raise: expr1&, expr2&, expr3& TryFinally: body, final TryExcept: body, handlers!, else_& Return: value Yield: value Const: value* Print: nodes!, dest& Printnl: nodes!, dest& Discard: expr AugAssign: node, op*, expr Assign: nodes!, expr AssTuple: nodes! AssList: nodes! AssName: name*, flags* AssAttr: expr, attrname*, flags* ListComp: expr, quals! ListCompFor: assign, list, ifs! ListCompIf: test GenExpr: code GenExprInner: expr, quals! GenExprFor: assign, iter, ifs! GenExprIf: test List: nodes! Dict: items! Not: expr Compare: expr, ops! Name: name* Global: names* Backquote: expr Getattr: expr, attrname* CallFunc: node, args!, star_args& = None, dstar_args& = None Keyword: name*, expr Subscript: expr, flags*, subs! Ellipsis: Sliceobj: nodes! Slice: expr, flags*, lower&, upper& Assert: test, fail& Tuple: nodes! Or: nodes! And: nodes! Bitor: nodes! Bitxor: nodes! Bitand: nodes! LeftShift: (left, right) RightShift: (left, right) Add: (left, right) Sub: (left, right) Mul: (left, right) Div: (left, right) Mod: (left, right) Power: (left, right) FloorDiv: (left, right) UnaryAdd: expr UnarySub: expr Invert: expr init(Function): self.varargs = self.kwargs = None if flags & CO_VARARGS: self.varargs = 1 if flags & CO_VARKEYWORDS: self.kwargs = 1 init(Lambda): self.varargs = self.kwargs = None if flags & CO_VARARGS: self.varargs = 1 if flags & CO_VARKEYWORDS: self.kwargs = 1 init(GenExpr): self.argnames = ['[outmost-iterable]'] self.varargs = self.kwargs = None init(GenExprFor): self.is_outmost = False