# 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 |