| # 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) |
| Module: doc*, node |
| Stmt: nodes! |
| Function: 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_& |
| If: tests!, else_& |
| Exec: expr, locals&, globals& |
| From: modname*, names* |
| 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 |
| 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 |