108 lines
2.6 KiB
Plaintext
108 lines
2.6 KiB
Plaintext
# 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*, arguments!, defaults!, kwonlyargs!, returns&, flags*, doc*, code
|
|
Lambda: arguments!, defaults!, kwonlyargs!, flags*, code
|
|
SimpleArg: name*, annotation&
|
|
NestedArgs: args!
|
|
Kwarg: arg, expr
|
|
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_
|
|
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!
|
|
Set: items!
|
|
Not: expr
|
|
Compare: expr, ops!
|
|
Name: name*
|
|
Global: names*
|
|
Getattr: expr, attrname*
|
|
CallFunc: node, args!, star_args& = None, dstar_args& = None
|
|
Keyword: name*, expr
|
|
Subscript: expr, flags*, subs!
|
|
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
|
|
self.returns = None
|
|
|
|
init(GenExpr):
|
|
self.arguments = [SimpleArg('.0', None)]
|
|
self.varargs = self.kwargs = None
|
|
self.kwonlyargs = ()
|
|
|
|
init(GenExprFor):
|
|
self.is_outmost = False
|