blob: 6a990d4cc5c09fb36d433f68bda4774bb158d99d [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!
11Function: name*, argnames*, defaults!, flags*, doc*, code
12Lambda: argnames*, defaults!, flags*, code
13Class: name*, bases!, doc*, code
Jeremy Hylton821eee32000-10-25 17:59:17 +000014Pass:
15Break:
16Continue:
Jeremy Hylton5477f522001-08-29 18:08:02 +000017For: assign, list, body, else_&
18While: test, body, else_&
19If: tests!, else_&
20Exec: expr, locals&, globals&
21From: modname*, names*
22Import: names*
23Raise: expr1&, expr2&, expr3&
Jeremy Hylton821eee32000-10-25 17:59:17 +000024TryFinally: body, final
Jeremy Hylton5477f522001-08-29 18:08:02 +000025TryExcept: body, handlers!, else_&
Jeremy Hylton821eee32000-10-25 17:59:17 +000026Return: value
Jeremy Hylton34aeeff2001-08-14 18:57:43 +000027Yield: value
Jeremy Hylton5477f522001-08-29 18:08:02 +000028Const: value*
29Print: nodes!, dest&
30Printnl: nodes!, dest&
Jeremy Hylton821eee32000-10-25 17:59:17 +000031Discard: expr
Jeremy Hylton5477f522001-08-29 18:08:02 +000032AugAssign: node, op*, expr
33Assign: nodes!, expr
34AssTuple: nodes!
35AssList: nodes!
36AssName: name*, flags*
37AssAttr: expr, attrname*, flags*
38ListComp: expr, quals!
39ListCompFor: assign, list, ifs!
Jeremy Hylton821eee32000-10-25 17:59:17 +000040ListCompIf: test
Raymond Hettinger354433a2004-05-19 08:20:33 +000041GenExpr: code
42GenExprInner: expr, quals!
43GenExprFor: assign, iter, ifs!
44GenExprIf: test
Jeremy Hylton5477f522001-08-29 18:08:02 +000045List: nodes!
46Dict: items!
Jeremy Hylton821eee32000-10-25 17:59:17 +000047Not: expr
Jeremy Hylton5477f522001-08-29 18:08:02 +000048Compare: expr, ops!
49Name: name*
Jeremy Hyltonfff252d2001-09-14 22:40:36 +000050Global: names*
Jeremy Hylton821eee32000-10-25 17:59:17 +000051Backquote: expr
Jeremy Hylton5477f522001-08-29 18:08:02 +000052Getattr: expr, attrname*
53CallFunc: node, args!, star_args& = None, dstar_args& = None
54Keyword: name*, expr
55Subscript: expr, flags*, subs!
Jeremy Hylton821eee32000-10-25 17:59:17 +000056Ellipsis:
Jeremy Hylton5477f522001-08-29 18:08:02 +000057Sliceobj: nodes!
58Slice: expr, flags*, lower&, upper&
59Assert: test, fail&
60Tuple: nodes!
61Or: nodes!
62And: nodes!
63Bitor: nodes!
64Bitxor: nodes!
65Bitand: nodes!
Jeremy Hylton821eee32000-10-25 17:59:17 +000066LeftShift: (left, right)
67RightShift: (left, right)
68Add: (left, right)
69Sub: (left, right)
70Mul: (left, right)
71Div: (left, right)
72Mod: (left, right)
73Power: (left, right)
Jeremy Hylton5477f522001-08-29 18:08:02 +000074FloorDiv: (left, right)
Jeremy Hylton821eee32000-10-25 17:59:17 +000075UnaryAdd: expr
76UnarySub: expr
77Invert: expr
78
79init(Function):
80 self.varargs = self.kwargs = None
81 if flags & CO_VARARGS:
82 self.varargs = 1
83 if flags & CO_VARKEYWORDS:
84 self.kwargs = 1
85
86init(Lambda):
87 self.varargs = self.kwargs = None
88 if flags & CO_VARARGS:
89 self.varargs = 1
90 if flags & CO_VARKEYWORDS:
91 self.kwargs = 1
Raymond Hettinger354433a2004-05-19 08:20:33 +000092
93init(GenExpr):
94 self.argnames = ['[outmost-iterable]']
95 self.varargs = self.kwargs = None
96
97init(GenExprFor):
98 self.is_outmost = False