blob: 3f8953bea85a55eab2aacbad67072e68ab45bbb8 [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
Jeremy Hylton5477f522001-08-29 18:08:02 +000041List: nodes!
42Dict: items!
Jeremy Hylton821eee32000-10-25 17:59:17 +000043Not: expr
Jeremy Hylton5477f522001-08-29 18:08:02 +000044Compare: expr, ops!
45Name: name*
Jeremy Hyltonfff252d2001-09-14 22:40:36 +000046Global: names*
Jeremy Hylton821eee32000-10-25 17:59:17 +000047Backquote: expr
Jeremy Hylton5477f522001-08-29 18:08:02 +000048Getattr: expr, attrname*
49CallFunc: node, args!, star_args& = None, dstar_args& = None
50Keyword: name*, expr
51Subscript: expr, flags*, subs!
Jeremy Hylton821eee32000-10-25 17:59:17 +000052Ellipsis:
Jeremy Hylton5477f522001-08-29 18:08:02 +000053Sliceobj: nodes!
54Slice: expr, flags*, lower&, upper&
55Assert: test, fail&
56Tuple: nodes!
57Or: nodes!
58And: nodes!
59Bitor: nodes!
60Bitxor: nodes!
61Bitand: nodes!
Jeremy Hylton821eee32000-10-25 17:59:17 +000062LeftShift: (left, right)
63RightShift: (left, right)
64Add: (left, right)
65Sub: (left, right)
66Mul: (left, right)
67Div: (left, right)
68Mod: (left, right)
69Power: (left, right)
Jeremy Hylton5477f522001-08-29 18:08:02 +000070FloorDiv: (left, right)
Jeremy Hylton821eee32000-10-25 17:59:17 +000071UnaryAdd: expr
72UnarySub: expr
73Invert: expr
74
75init(Function):
76 self.varargs = self.kwargs = None
77 if flags & CO_VARARGS:
78 self.varargs = 1
79 if flags & CO_VARKEYWORDS:
80 self.kwargs = 1
81
82init(Lambda):
83 self.varargs = self.kwargs = None
84 if flags & CO_VARARGS:
85 self.varargs = 1
86 if flags & CO_VARKEYWORDS:
87 self.kwargs = 1