| # 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, decorators& = None | |
| 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 = ['.0'] | |
| self.varargs = self.kwargs = None | |
| init(GenExprFor): | |
| self.is_outmost = False |