|
1 # 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) |
|
9 # |
|
10 # If you add node types here, please be sure to update the list of |
|
11 # Node types in Doc/lib/asttable.tex. |
|
12 Module: doc*, node |
|
13 Stmt: nodes! |
|
14 Decorators: nodes! |
|
15 Function: decorators&, name*, argnames*, defaults!, flags*, doc*, code |
|
16 Lambda: argnames*, defaults!, flags*, code |
|
17 Class: name*, bases!, doc*, code, decorators& = None |
|
18 Pass: |
|
19 Break: |
|
20 Continue: |
|
21 For: assign, list, body, else_& |
|
22 While: test, body, else_& |
|
23 With: expr, vars&, body |
|
24 If: tests!, else_& |
|
25 IfExp: test, then, else_ |
|
26 Exec: expr, locals&, globals& |
|
27 From: modname*, names*, level* |
|
28 Import: names* |
|
29 Raise: expr1&, expr2&, expr3& |
|
30 TryFinally: body, final |
|
31 TryExcept: body, handlers!, else_& |
|
32 Return: value |
|
33 Yield: value |
|
34 Const: value* |
|
35 Print: nodes!, dest& |
|
36 Printnl: nodes!, dest& |
|
37 Discard: expr |
|
38 AugAssign: node, op*, expr |
|
39 Assign: nodes!, expr |
|
40 AssTuple: nodes! |
|
41 AssList: nodes! |
|
42 AssName: name*, flags* |
|
43 AssAttr: expr, attrname*, flags* |
|
44 ListComp: expr, quals! |
|
45 ListCompFor: assign, list, ifs! |
|
46 ListCompIf: test |
|
47 GenExpr: code |
|
48 GenExprInner: expr, quals! |
|
49 GenExprFor: assign, iter, ifs! |
|
50 GenExprIf: test |
|
51 List: nodes! |
|
52 Dict: items! |
|
53 Not: expr |
|
54 Compare: expr, ops! |
|
55 Name: name* |
|
56 Global: names* |
|
57 Backquote: expr |
|
58 Getattr: expr, attrname* |
|
59 CallFunc: node, args!, star_args& = None, dstar_args& = None |
|
60 Keyword: name*, expr |
|
61 Subscript: expr, flags*, subs! |
|
62 Ellipsis: |
|
63 Sliceobj: nodes! |
|
64 Slice: expr, flags*, lower&, upper& |
|
65 Assert: test, fail& |
|
66 Tuple: nodes! |
|
67 Or: nodes! |
|
68 And: nodes! |
|
69 Bitor: nodes! |
|
70 Bitxor: nodes! |
|
71 Bitand: nodes! |
|
72 LeftShift: (left, right) |
|
73 RightShift: (left, right) |
|
74 Add: (left, right) |
|
75 Sub: (left, right) |
|
76 Mul: (left, right) |
|
77 Div: (left, right) |
|
78 Mod: (left, right) |
|
79 Power: (left, right) |
|
80 FloorDiv: (left, right) |
|
81 UnaryAdd: expr |
|
82 UnarySub: expr |
|
83 Invert: expr |
|
84 |
|
85 init(Function): |
|
86 self.varargs = self.kwargs = None |
|
87 if flags & CO_VARARGS: |
|
88 self.varargs = 1 |
|
89 if flags & CO_VARKEYWORDS: |
|
90 self.kwargs = 1 |
|
91 |
|
92 init(Lambda): |
|
93 self.varargs = self.kwargs = None |
|
94 if flags & CO_VARARGS: |
|
95 self.varargs = 1 |
|
96 if flags & CO_VARKEYWORDS: |
|
97 self.kwargs = 1 |
|
98 |
|
99 init(GenExpr): |
|
100 self.argnames = ['.0'] |
|
101 self.varargs = self.kwargs = None |
|
102 |
|
103 init(GenExprFor): |
|
104 self.is_outmost = False |