blob: a235b99d6429b8e7b591cf4409cd9bce03ee080b [file] [log] [blame]
Jeremy Hylton5477f522001-08-29 18:08:02 +00001# This file describes the nodes of the AST in ast.py. The module is
2# generated by astgen.py.
3# The descriptions use the following special notation to describe
4# properties of the children:
5# * this child is not a node
6# ! this child is a sequence that contains nodes in it
7# & this child may be set to None
8# = ... a default value for the node constructor (optional args)
9Module: doc*, node
10Stmt: nodes!
Anthony Baxterc2a5a632004-08-02 06:10:11 +000011Decorators: nodes!
12Function: decorators&, name*, argnames*, defaults!, flags*, doc*, code
Jeremy Hylton5477f522001-08-29 18:08:02 +000013Lambda: argnames*, defaults!, flags*, code
14Class: name*, bases!, doc*, code
Jeremy Hylton821eee32000-10-25 17:59:17 +000015Pass:
16Break:
17Continue:
Jeremy Hylton5477f522001-08-29 18:08:02 +000018For: assign, list, body, else_&
19While: test, body, else_&
20If: tests!, else_&
21Exec: expr, locals&, globals&
22From: modname*, names*
23Import: names*
24Raise: expr1&, expr2&, expr3&
Jeremy Hylton821eee32000-10-25 17:59:17 +000025TryFinally: body, final
Jeremy Hylton5477f522001-08-29 18:08:02 +000026TryExcept: body, handlers!, else_&
Jeremy Hylton821eee32000-10-25 17:59:17 +000027Return: value
Jeremy Hylton34aeeff2001-08-14 18:57:43 +000028Yield: value
Jeremy Hylton5477f522001-08-29 18:08:02 +000029Const: value*
30Print: nodes!, dest&
31Printnl: nodes!, dest&
Jeremy Hylton821eee32000-10-25 17:59:17 +000032Discard: expr
Jeremy Hylton5477f522001-08-29 18:08:02 +000033AugAssign: node, op*, expr
34Assign: nodes!, expr
35AssTuple: nodes!
36AssList: nodes!
37AssName: name*, flags*
38AssAttr: expr, attrname*, flags*
39ListComp: expr, quals!
40ListCompFor: assign, list, ifs!
Jeremy Hylton821eee32000-10-25 17:59:17 +000041ListCompIf: test
Raymond Hettinger354433a2004-05-19 08:20:33 +000042GenExpr: code
43GenExprInner: expr, quals!
44GenExprFor: assign, iter, ifs!
45GenExprIf: test
Jeremy Hylton5477f522001-08-29 18:08:02 +000046List: nodes!
47Dict: items!
Jeremy Hylton821eee32000-10-25 17:59:17 +000048Not: expr
Jeremy Hylton5477f522001-08-29 18:08:02 +000049Compare: expr, ops!
50Name: name*
Jeremy Hyltonfff252d2001-09-14 22:40:36 +000051Global: names*
Jeremy Hylton821eee32000-10-25 17:59:17 +000052Backquote: expr
Jeremy Hylton5477f522001-08-29 18:08:02 +000053Getattr: expr, attrname*
54CallFunc: node, args!, star_args& = None, dstar_args& = None
55Keyword: name*, expr
56Subscript: expr, flags*, subs!
Jeremy Hylton821eee32000-10-25 17:59:17 +000057Ellipsis:
Jeremy Hylton5477f522001-08-29 18:08:02 +000058Sliceobj: nodes!
59Slice: expr, flags*, lower&, upper&
60Assert: test, fail&
61Tuple: nodes!
62Or: nodes!
63And: nodes!
64Bitor: nodes!
65Bitxor: nodes!
66Bitand: nodes!
Jeremy Hylton821eee32000-10-25 17:59:17 +000067LeftShift: (left, right)
68RightShift: (left, right)
69Add: (left, right)
70Sub: (left, right)
71Mul: (left, right)
72Div: (left, right)
73Mod: (left, right)
74Power: (left, right)
Jeremy Hylton5477f522001-08-29 18:08:02 +000075FloorDiv: (left, right)
Jeremy Hylton821eee32000-10-25 17:59:17 +000076UnaryAdd: expr
77UnarySub: expr
78Invert: expr
79
80init(Function):
81 self.varargs = self.kwargs = None
82 if flags & CO_VARARGS:
83 self.varargs = 1
84 if flags & CO_VARKEYWORDS:
85 self.kwargs = 1
86
87init(Lambda):
88 self.varargs = self.kwargs = None
89 if flags & CO_VARARGS:
90 self.varargs = 1
91 if flags & CO_VARKEYWORDS:
92 self.kwargs = 1
Raymond Hettinger354433a2004-05-19 08:20:33 +000093
94init(GenExpr):
95 self.argnames = ['[outmost-iterable]']
96 self.varargs = self.kwargs = None
97
98init(GenExprFor):
99 self.is_outmost = False