diff options
Diffstat (limited to 'Tools/compiler/ast.txt')
-rw-r--r-- | Tools/compiler/ast.txt | 91 |
1 files changed, 50 insertions, 41 deletions
diff --git a/Tools/compiler/ast.txt b/Tools/compiler/ast.txt index 21203d2..3e2a82d 100644 --- a/Tools/compiler/ast.txt +++ b/Tools/compiler/ast.txt @@ -1,56 +1,64 @@ -Module: doc, node -Stmt: nodes -Function: name, argnames, defaults, flags, doc, code -Lambda: argnames, defaults, flags, code -Class: name, bases, doc, code +# 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 +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_ +TryExcept: body, handlers!, else_& Return: value Yield: value -Const: value -Print: nodes, dest -Printnl: nodes, dest +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 +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 +List: nodes! +Dict: items! Not: expr -Compare: expr, ops -Name: name +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 +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 +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) @@ -59,6 +67,7 @@ Mul: (left, right) Div: (left, right) Mod: (left, right) Power: (left, right) +FloorDiv: (left, right) UnaryAdd: expr UnarySub: expr Invert: expr |