1 """Python abstract syntax node definitions
3 This file is automatically generated by Tools/compiler/astgen.py
5 from compiler
.consts
import CO_VARARGS
, CO_VARKEYWORDS
11 if t
is tuple or t
is list:
12 for elt2
in flatten(elt
):
18 def flatten_nodes(seq
):
19 return [n
for n
in flatten(seq
) if isinstance(n
, Node
)]
24 """Abstract base class for ast nodes."""
25 def getChildren(self
):
26 pass # implemented by subclasses
28 for n
in self
.getChildren():
30 def asList(self
): # for backwards compatibility
31 return self
.getChildren()
32 def getChildNodes(self
):
33 pass # implemented by subclasses
35 class EmptyNode(Node
):
38 class Expression(Node
):
39 # Expression is an artificial node class to support "eval"
40 nodes
["expression"] = "Expression"
41 def __init__(self
, node
):
44 def getChildren(self
):
47 def getChildNodes(self
):
51 return "Expression(%s)" % (repr(self
.node
))
54 def __init__(self
, (left
, right
), lineno
=None):
59 def getChildren(self
):
60 return self
.left
, self
.right
62 def getChildNodes(self
):
63 return self
.left
, self
.right
66 return "Add((%s, %s))" % (repr(self
.left
), repr(self
.right
))
69 def __init__(self
, nodes
, lineno
=None):
73 def getChildren(self
):
74 return tuple(flatten(self
.nodes
))
76 def getChildNodes(self
):
78 nodelist
.extend(flatten_nodes(self
.nodes
))
79 return tuple(nodelist
)
82 return "And(%s)" % (repr(self
.nodes
),)
85 def __init__(self
, expr
, attrname
, flags
, lineno
=None):
87 self
.attrname
= attrname
91 def getChildren(self
):
92 return self
.expr
, self
.attrname
, self
.flags
94 def getChildNodes(self
):
98 return "AssAttr(%s, %s, %s)" % (repr(self
.expr
), repr(self
.attrname
), repr(self
.flags
))
101 def __init__(self
, nodes
, lineno
=None):
105 def getChildren(self
):
106 return tuple(flatten(self
.nodes
))
108 def getChildNodes(self
):
110 nodelist
.extend(flatten_nodes(self
.nodes
))
111 return tuple(nodelist
)
114 return "AssList(%s)" % (repr(self
.nodes
),)
117 def __init__(self
, name
, flags
, lineno
=None):
122 def getChildren(self
):
123 return self
.name
, self
.flags
125 def getChildNodes(self
):
129 return "AssName(%s, %s)" % (repr(self
.name
), repr(self
.flags
))
131 class AssTuple(Node
):
132 def __init__(self
, nodes
, lineno
=None):
136 def getChildren(self
):
137 return tuple(flatten(self
.nodes
))
139 def getChildNodes(self
):
141 nodelist
.extend(flatten_nodes(self
.nodes
))
142 return tuple(nodelist
)
145 return "AssTuple(%s)" % (repr(self
.nodes
),)
148 def __init__(self
, test
, fail
, lineno
=None):
153 def getChildren(self
):
155 children
.append(self
.test
)
156 children
.append(self
.fail
)
157 return tuple(children
)
159 def getChildNodes(self
):
161 nodelist
.append(self
.test
)
162 if self
.fail
is not None:
163 nodelist
.append(self
.fail
)
164 return tuple(nodelist
)
167 return "Assert(%s, %s)" % (repr(self
.test
), repr(self
.fail
))
170 def __init__(self
, nodes
, expr
, lineno
=None):
175 def getChildren(self
):
177 children
.extend(flatten(self
.nodes
))
178 children
.append(self
.expr
)
179 return tuple(children
)
181 def getChildNodes(self
):
183 nodelist
.extend(flatten_nodes(self
.nodes
))
184 nodelist
.append(self
.expr
)
185 return tuple(nodelist
)
188 return "Assign(%s, %s)" % (repr(self
.nodes
), repr(self
.expr
))
190 class AugAssign(Node
):
191 def __init__(self
, node
, op
, expr
, lineno
=None):
197 def getChildren(self
):
198 return self
.node
, self
.op
, self
.expr
200 def getChildNodes(self
):
201 return self
.node
, self
.expr
204 return "AugAssign(%s, %s, %s)" % (repr(self
.node
), repr(self
.op
), repr(self
.expr
))
206 class Backquote(Node
):
207 def __init__(self
, expr
, lineno
=None):
211 def getChildren(self
):
214 def getChildNodes(self
):
218 return "Backquote(%s)" % (repr(self
.expr
),)
221 def __init__(self
, nodes
, lineno
=None):
225 def getChildren(self
):
226 return tuple(flatten(self
.nodes
))
228 def getChildNodes(self
):
230 nodelist
.extend(flatten_nodes(self
.nodes
))
231 return tuple(nodelist
)
234 return "Bitand(%s)" % (repr(self
.nodes
),)
237 def __init__(self
, nodes
, lineno
=None):
241 def getChildren(self
):
242 return tuple(flatten(self
.nodes
))
244 def getChildNodes(self
):
246 nodelist
.extend(flatten_nodes(self
.nodes
))
247 return tuple(nodelist
)
250 return "Bitor(%s)" % (repr(self
.nodes
),)
253 def __init__(self
, nodes
, lineno
=None):
257 def getChildren(self
):
258 return tuple(flatten(self
.nodes
))
260 def getChildNodes(self
):
262 nodelist
.extend(flatten_nodes(self
.nodes
))
263 return tuple(nodelist
)
266 return "Bitxor(%s)" % (repr(self
.nodes
),)
269 def __init__(self
, lineno
=None):
272 def getChildren(self
):
275 def getChildNodes(self
):
281 class CallFunc(Node
):
282 def __init__(self
, node
, args
, star_args
= None, dstar_args
= None, lineno
=None):
285 self
.star_args
= star_args
286 self
.dstar_args
= dstar_args
289 def getChildren(self
):
291 children
.append(self
.node
)
292 children
.extend(flatten(self
.args
))
293 children
.append(self
.star_args
)
294 children
.append(self
.dstar_args
)
295 return tuple(children
)
297 def getChildNodes(self
):
299 nodelist
.append(self
.node
)
300 nodelist
.extend(flatten_nodes(self
.args
))
301 if self
.star_args
is not None:
302 nodelist
.append(self
.star_args
)
303 if self
.dstar_args
is not None:
304 nodelist
.append(self
.dstar_args
)
305 return tuple(nodelist
)
308 return "CallFunc(%s, %s, %s, %s)" % (repr(self
.node
), repr(self
.args
), repr(self
.star_args
), repr(self
.dstar_args
))
311 def __init__(self
, name
, bases
, doc
, code
, lineno
=None):
318 def getChildren(self
):
320 children
.append(self
.name
)
321 children
.extend(flatten(self
.bases
))
322 children
.append(self
.doc
)
323 children
.append(self
.code
)
324 return tuple(children
)
326 def getChildNodes(self
):
328 nodelist
.extend(flatten_nodes(self
.bases
))
329 nodelist
.append(self
.code
)
330 return tuple(nodelist
)
333 return "Class(%s, %s, %s, %s)" % (repr(self
.name
), repr(self
.bases
), repr(self
.doc
), repr(self
.code
))
336 def __init__(self
, expr
, ops
, lineno
=None):
341 def getChildren(self
):
343 children
.append(self
.expr
)
344 children
.extend(flatten(self
.ops
))
345 return tuple(children
)
347 def getChildNodes(self
):
349 nodelist
.append(self
.expr
)
350 nodelist
.extend(flatten_nodes(self
.ops
))
351 return tuple(nodelist
)
354 return "Compare(%s, %s)" % (repr(self
.expr
), repr(self
.ops
))
357 def __init__(self
, value
, lineno
=None):
361 def getChildren(self
):
364 def getChildNodes(self
):
368 return "Const(%s)" % (repr(self
.value
),)
370 class Continue(Node
):
371 def __init__(self
, lineno
=None):
374 def getChildren(self
):
377 def getChildNodes(self
):
383 class Decorators(Node
):
384 def __init__(self
, nodes
, lineno
=None):
388 def getChildren(self
):
389 return tuple(flatten(self
.nodes
))
391 def getChildNodes(self
):
393 nodelist
.extend(flatten_nodes(self
.nodes
))
394 return tuple(nodelist
)
397 return "Decorators(%s)" % (repr(self
.nodes
),)
400 def __init__(self
, items
, lineno
=None):
404 def getChildren(self
):
405 return tuple(flatten(self
.items
))
407 def getChildNodes(self
):
409 nodelist
.extend(flatten_nodes(self
.items
))
410 return tuple(nodelist
)
413 return "Dict(%s)" % (repr(self
.items
),)
416 def __init__(self
, expr
, lineno
=None):
420 def getChildren(self
):
423 def getChildNodes(self
):
427 return "Discard(%s)" % (repr(self
.expr
),)
430 def __init__(self
, (left
, right
), lineno
=None):
435 def getChildren(self
):
436 return self
.left
, self
.right
438 def getChildNodes(self
):
439 return self
.left
, self
.right
442 return "Div((%s, %s))" % (repr(self
.left
), repr(self
.right
))
444 class Ellipsis(Node
):
445 def __init__(self
, lineno
=None):
448 def getChildren(self
):
451 def getChildNodes(self
):
458 def __init__(self
, expr
, locals, globals, lineno
=None):
461 self
.globals = globals
464 def getChildren(self
):
466 children
.append(self
.expr
)
467 children
.append(self
.locals)
468 children
.append(self
.globals)
469 return tuple(children
)
471 def getChildNodes(self
):
473 nodelist
.append(self
.expr
)
474 if self
.locals is not None:
475 nodelist
.append(self
.locals)
476 if self
.globals is not None:
477 nodelist
.append(self
.globals)
478 return tuple(nodelist
)
481 return "Exec(%s, %s, %s)" % (repr(self
.expr
), repr(self
.locals), repr(self
.globals))
483 class FloorDiv(Node
):
484 def __init__(self
, (left
, right
), lineno
=None):
489 def getChildren(self
):
490 return self
.left
, self
.right
492 def getChildNodes(self
):
493 return self
.left
, self
.right
496 return "FloorDiv((%s, %s))" % (repr(self
.left
), repr(self
.right
))
499 def __init__(self
, assign
, list, body
, else_
, lineno
=None):
506 def getChildren(self
):
508 children
.append(self
.assign
)
509 children
.append(self
.list)
510 children
.append(self
.body
)
511 children
.append(self
.else_
)
512 return tuple(children
)
514 def getChildNodes(self
):
516 nodelist
.append(self
.assign
)
517 nodelist
.append(self
.list)
518 nodelist
.append(self
.body
)
519 if self
.else_
is not None:
520 nodelist
.append(self
.else_
)
521 return tuple(nodelist
)
524 return "For(%s, %s, %s, %s)" % (repr(self
.assign
), repr(self
.list), repr(self
.body
), repr(self
.else_
))
527 def __init__(self
, modname
, names
, level
, lineno
=None):
528 self
.modname
= modname
533 def getChildren(self
):
534 return self
.modname
, self
.names
, self
.level
536 def getChildNodes(self
):
540 return "From(%s, %s, %s)" % (repr(self
.modname
), repr(self
.names
), repr(self
.level
))
542 class Function(Node
):
543 def __init__(self
, decorators
, name
, argnames
, defaults
, flags
, doc
, code
, lineno
=None):
544 self
.decorators
= decorators
546 self
.argnames
= argnames
547 self
.defaults
= defaults
552 self
.varargs
= self
.kwargs
= None
553 if flags
& CO_VARARGS
:
555 if flags
& CO_VARKEYWORDS
:
560 def getChildren(self
):
562 children
.append(self
.decorators
)
563 children
.append(self
.name
)
564 children
.append(self
.argnames
)
565 children
.extend(flatten(self
.defaults
))
566 children
.append(self
.flags
)
567 children
.append(self
.doc
)
568 children
.append(self
.code
)
569 return tuple(children
)
571 def getChildNodes(self
):
573 if self
.decorators
is not None:
574 nodelist
.append(self
.decorators
)
575 nodelist
.extend(flatten_nodes(self
.defaults
))
576 nodelist
.append(self
.code
)
577 return tuple(nodelist
)
580 return "Function(%s, %s, %s, %s, %s, %s, %s)" % (repr(self
.decorators
), repr(self
.name
), repr(self
.argnames
), repr(self
.defaults
), repr(self
.flags
), repr(self
.doc
), repr(self
.code
))
583 def __init__(self
, code
, lineno
=None):
586 self
.argnames
= ['.0']
587 self
.varargs
= self
.kwargs
= None
589 def getChildren(self
):
592 def getChildNodes(self
):
596 return "GenExpr(%s)" % (repr(self
.code
),)
598 class GenExprFor(Node
):
599 def __init__(self
, assign
, iter, ifs
, lineno
=None):
604 self
.is_outmost
= False
607 def getChildren(self
):
609 children
.append(self
.assign
)
610 children
.append(self
.iter)
611 children
.extend(flatten(self
.ifs
))
612 return tuple(children
)
614 def getChildNodes(self
):
616 nodelist
.append(self
.assign
)
617 nodelist
.append(self
.iter)
618 nodelist
.extend(flatten_nodes(self
.ifs
))
619 return tuple(nodelist
)
622 return "GenExprFor(%s, %s, %s)" % (repr(self
.assign
), repr(self
.iter), repr(self
.ifs
))
624 class GenExprIf(Node
):
625 def __init__(self
, test
, lineno
=None):
629 def getChildren(self
):
632 def getChildNodes(self
):
636 return "GenExprIf(%s)" % (repr(self
.test
),)
638 class GenExprInner(Node
):
639 def __init__(self
, expr
, quals
, lineno
=None):
644 def getChildren(self
):
646 children
.append(self
.expr
)
647 children
.extend(flatten(self
.quals
))
648 return tuple(children
)
650 def getChildNodes(self
):
652 nodelist
.append(self
.expr
)
653 nodelist
.extend(flatten_nodes(self
.quals
))
654 return tuple(nodelist
)
657 return "GenExprInner(%s, %s)" % (repr(self
.expr
), repr(self
.quals
))
660 def __init__(self
, expr
, attrname
, lineno
=None):
662 self
.attrname
= attrname
665 def getChildren(self
):
666 return self
.expr
, self
.attrname
668 def getChildNodes(self
):
672 return "Getattr(%s, %s)" % (repr(self
.expr
), repr(self
.attrname
))
675 def __init__(self
, names
, lineno
=None):
679 def getChildren(self
):
682 def getChildNodes(self
):
686 return "Global(%s)" % (repr(self
.names
),)
689 def __init__(self
, tests
, else_
, lineno
=None):
694 def getChildren(self
):
696 children
.extend(flatten(self
.tests
))
697 children
.append(self
.else_
)
698 return tuple(children
)
700 def getChildNodes(self
):
702 nodelist
.extend(flatten_nodes(self
.tests
))
703 if self
.else_
is not None:
704 nodelist
.append(self
.else_
)
705 return tuple(nodelist
)
708 return "If(%s, %s)" % (repr(self
.tests
), repr(self
.else_
))
711 def __init__(self
, test
, then
, else_
, lineno
=None):
717 def getChildren(self
):
718 return self
.test
, self
.then
, self
.else_
720 def getChildNodes(self
):
721 return self
.test
, self
.then
, self
.else_
724 return "IfExp(%s, %s, %s)" % (repr(self
.test
), repr(self
.then
), repr(self
.else_
))
727 def __init__(self
, names
, lineno
=None):
731 def getChildren(self
):
734 def getChildNodes(self
):
738 return "Import(%s)" % (repr(self
.names
),)
741 def __init__(self
, expr
, lineno
=None):
745 def getChildren(self
):
748 def getChildNodes(self
):
752 return "Invert(%s)" % (repr(self
.expr
),)
755 def __init__(self
, name
, expr
, lineno
=None):
760 def getChildren(self
):
761 return self
.name
, self
.expr
763 def getChildNodes(self
):
767 return "Keyword(%s, %s)" % (repr(self
.name
), repr(self
.expr
))
770 def __init__(self
, argnames
, defaults
, flags
, code
, lineno
=None):
771 self
.argnames
= argnames
772 self
.defaults
= defaults
776 self
.varargs
= self
.kwargs
= None
777 if flags
& CO_VARARGS
:
779 if flags
& CO_VARKEYWORDS
:
784 def getChildren(self
):
786 children
.append(self
.argnames
)
787 children
.extend(flatten(self
.defaults
))
788 children
.append(self
.flags
)
789 children
.append(self
.code
)
790 return tuple(children
)
792 def getChildNodes(self
):
794 nodelist
.extend(flatten_nodes(self
.defaults
))
795 nodelist
.append(self
.code
)
796 return tuple(nodelist
)
799 return "Lambda(%s, %s, %s, %s)" % (repr(self
.argnames
), repr(self
.defaults
), repr(self
.flags
), repr(self
.code
))
801 class LeftShift(Node
):
802 def __init__(self
, (left
, right
), lineno
=None):
807 def getChildren(self
):
808 return self
.left
, self
.right
810 def getChildNodes(self
):
811 return self
.left
, self
.right
814 return "LeftShift((%s, %s))" % (repr(self
.left
), repr(self
.right
))
817 def __init__(self
, nodes
, lineno
=None):
821 def getChildren(self
):
822 return tuple(flatten(self
.nodes
))
824 def getChildNodes(self
):
826 nodelist
.extend(flatten_nodes(self
.nodes
))
827 return tuple(nodelist
)
830 return "List(%s)" % (repr(self
.nodes
),)
832 class ListComp(Node
):
833 def __init__(self
, expr
, quals
, lineno
=None):
838 def getChildren(self
):
840 children
.append(self
.expr
)
841 children
.extend(flatten(self
.quals
))
842 return tuple(children
)
844 def getChildNodes(self
):
846 nodelist
.append(self
.expr
)
847 nodelist
.extend(flatten_nodes(self
.quals
))
848 return tuple(nodelist
)
851 return "ListComp(%s, %s)" % (repr(self
.expr
), repr(self
.quals
))
853 class ListCompFor(Node
):
854 def __init__(self
, assign
, list, ifs
, lineno
=None):
860 def getChildren(self
):
862 children
.append(self
.assign
)
863 children
.append(self
.list)
864 children
.extend(flatten(self
.ifs
))
865 return tuple(children
)
867 def getChildNodes(self
):
869 nodelist
.append(self
.assign
)
870 nodelist
.append(self
.list)
871 nodelist
.extend(flatten_nodes(self
.ifs
))
872 return tuple(nodelist
)
875 return "ListCompFor(%s, %s, %s)" % (repr(self
.assign
), repr(self
.list), repr(self
.ifs
))
877 class ListCompIf(Node
):
878 def __init__(self
, test
, lineno
=None):
882 def getChildren(self
):
885 def getChildNodes(self
):
889 return "ListCompIf(%s)" % (repr(self
.test
),)
892 def __init__(self
, (left
, right
), lineno
=None):
897 def getChildren(self
):
898 return self
.left
, self
.right
900 def getChildNodes(self
):
901 return self
.left
, self
.right
904 return "Mod((%s, %s))" % (repr(self
.left
), repr(self
.right
))
907 def __init__(self
, doc
, node
, lineno
=None):
912 def getChildren(self
):
913 return self
.doc
, self
.node
915 def getChildNodes(self
):
919 return "Module(%s, %s)" % (repr(self
.doc
), repr(self
.node
))
922 def __init__(self
, (left
, right
), lineno
=None):
927 def getChildren(self
):
928 return self
.left
, self
.right
930 def getChildNodes(self
):
931 return self
.left
, self
.right
934 return "Mul((%s, %s))" % (repr(self
.left
), repr(self
.right
))
937 def __init__(self
, name
, lineno
=None):
941 def getChildren(self
):
944 def getChildNodes(self
):
948 return "Name(%s)" % (repr(self
.name
),)
951 def __init__(self
, expr
, lineno
=None):
955 def getChildren(self
):
958 def getChildNodes(self
):
962 return "Not(%s)" % (repr(self
.expr
),)
965 def __init__(self
, nodes
, lineno
=None):
969 def getChildren(self
):
970 return tuple(flatten(self
.nodes
))
972 def getChildNodes(self
):
974 nodelist
.extend(flatten_nodes(self
.nodes
))
975 return tuple(nodelist
)
978 return "Or(%s)" % (repr(self
.nodes
),)
981 def __init__(self
, lineno
=None):
984 def getChildren(self
):
987 def getChildNodes(self
):
994 def __init__(self
, (left
, right
), lineno
=None):
999 def getChildren(self
):
1000 return self
.left
, self
.right
1002 def getChildNodes(self
):
1003 return self
.left
, self
.right
1006 return "Power((%s, %s))" % (repr(self
.left
), repr(self
.right
))
1009 def __init__(self
, nodes
, dest
, lineno
=None):
1012 self
.lineno
= lineno
1014 def getChildren(self
):
1016 children
.extend(flatten(self
.nodes
))
1017 children
.append(self
.dest
)
1018 return tuple(children
)
1020 def getChildNodes(self
):
1022 nodelist
.extend(flatten_nodes(self
.nodes
))
1023 if self
.dest
is not None:
1024 nodelist
.append(self
.dest
)
1025 return tuple(nodelist
)
1028 return "Print(%s, %s)" % (repr(self
.nodes
), repr(self
.dest
))
1030 class Printnl(Node
):
1031 def __init__(self
, nodes
, dest
, lineno
=None):
1034 self
.lineno
= lineno
1036 def getChildren(self
):
1038 children
.extend(flatten(self
.nodes
))
1039 children
.append(self
.dest
)
1040 return tuple(children
)
1042 def getChildNodes(self
):
1044 nodelist
.extend(flatten_nodes(self
.nodes
))
1045 if self
.dest
is not None:
1046 nodelist
.append(self
.dest
)
1047 return tuple(nodelist
)
1050 return "Printnl(%s, %s)" % (repr(self
.nodes
), repr(self
.dest
))
1053 def __init__(self
, expr1
, expr2
, expr3
, lineno
=None):
1057 self
.lineno
= lineno
1059 def getChildren(self
):
1061 children
.append(self
.expr1
)
1062 children
.append(self
.expr2
)
1063 children
.append(self
.expr3
)
1064 return tuple(children
)
1066 def getChildNodes(self
):
1068 if self
.expr1
is not None:
1069 nodelist
.append(self
.expr1
)
1070 if self
.expr2
is not None:
1071 nodelist
.append(self
.expr2
)
1072 if self
.expr3
is not None:
1073 nodelist
.append(self
.expr3
)
1074 return tuple(nodelist
)
1077 return "Raise(%s, %s, %s)" % (repr(self
.expr1
), repr(self
.expr2
), repr(self
.expr3
))
1080 def __init__(self
, value
, lineno
=None):
1082 self
.lineno
= lineno
1084 def getChildren(self
):
1087 def getChildNodes(self
):
1091 return "Return(%s)" % (repr(self
.value
),)
1093 class RightShift(Node
):
1094 def __init__(self
, (left
, right
), lineno
=None):
1097 self
.lineno
= lineno
1099 def getChildren(self
):
1100 return self
.left
, self
.right
1102 def getChildNodes(self
):
1103 return self
.left
, self
.right
1106 return "RightShift((%s, %s))" % (repr(self
.left
), repr(self
.right
))
1109 def __init__(self
, expr
, flags
, lower
, upper
, lineno
=None):
1114 self
.lineno
= lineno
1116 def getChildren(self
):
1118 children
.append(self
.expr
)
1119 children
.append(self
.flags
)
1120 children
.append(self
.lower
)
1121 children
.append(self
.upper
)
1122 return tuple(children
)
1124 def getChildNodes(self
):
1126 nodelist
.append(self
.expr
)
1127 if self
.lower
is not None:
1128 nodelist
.append(self
.lower
)
1129 if self
.upper
is not None:
1130 nodelist
.append(self
.upper
)
1131 return tuple(nodelist
)
1134 return "Slice(%s, %s, %s, %s)" % (repr(self
.expr
), repr(self
.flags
), repr(self
.lower
), repr(self
.upper
))
1136 class Sliceobj(Node
):
1137 def __init__(self
, nodes
, lineno
=None):
1139 self
.lineno
= lineno
1141 def getChildren(self
):
1142 return tuple(flatten(self
.nodes
))
1144 def getChildNodes(self
):
1146 nodelist
.extend(flatten_nodes(self
.nodes
))
1147 return tuple(nodelist
)
1150 return "Sliceobj(%s)" % (repr(self
.nodes
),)
1153 def __init__(self
, nodes
, lineno
=None):
1155 self
.lineno
= lineno
1157 def getChildren(self
):
1158 return tuple(flatten(self
.nodes
))
1160 def getChildNodes(self
):
1162 nodelist
.extend(flatten_nodes(self
.nodes
))
1163 return tuple(nodelist
)
1166 return "Stmt(%s)" % (repr(self
.nodes
),)
1169 def __init__(self
, (left
, right
), lineno
=None):
1172 self
.lineno
= lineno
1174 def getChildren(self
):
1175 return self
.left
, self
.right
1177 def getChildNodes(self
):
1178 return self
.left
, self
.right
1181 return "Sub((%s, %s))" % (repr(self
.left
), repr(self
.right
))
1183 class Subscript(Node
):
1184 def __init__(self
, expr
, flags
, subs
, lineno
=None):
1188 self
.lineno
= lineno
1190 def getChildren(self
):
1192 children
.append(self
.expr
)
1193 children
.append(self
.flags
)
1194 children
.extend(flatten(self
.subs
))
1195 return tuple(children
)
1197 def getChildNodes(self
):
1199 nodelist
.append(self
.expr
)
1200 nodelist
.extend(flatten_nodes(self
.subs
))
1201 return tuple(nodelist
)
1204 return "Subscript(%s, %s, %s)" % (repr(self
.expr
), repr(self
.flags
), repr(self
.subs
))
1206 class TryExcept(Node
):
1207 def __init__(self
, body
, handlers
, else_
, lineno
=None):
1209 self
.handlers
= handlers
1211 self
.lineno
= lineno
1213 def getChildren(self
):
1215 children
.append(self
.body
)
1216 children
.extend(flatten(self
.handlers
))
1217 children
.append(self
.else_
)
1218 return tuple(children
)
1220 def getChildNodes(self
):
1222 nodelist
.append(self
.body
)
1223 nodelist
.extend(flatten_nodes(self
.handlers
))
1224 if self
.else_
is not None:
1225 nodelist
.append(self
.else_
)
1226 return tuple(nodelist
)
1229 return "TryExcept(%s, %s, %s)" % (repr(self
.body
), repr(self
.handlers
), repr(self
.else_
))
1231 class TryFinally(Node
):
1232 def __init__(self
, body
, final
, lineno
=None):
1235 self
.lineno
= lineno
1237 def getChildren(self
):
1238 return self
.body
, self
.final
1240 def getChildNodes(self
):
1241 return self
.body
, self
.final
1244 return "TryFinally(%s, %s)" % (repr(self
.body
), repr(self
.final
))
1247 def __init__(self
, nodes
, lineno
=None):
1249 self
.lineno
= lineno
1251 def getChildren(self
):
1252 return tuple(flatten(self
.nodes
))
1254 def getChildNodes(self
):
1256 nodelist
.extend(flatten_nodes(self
.nodes
))
1257 return tuple(nodelist
)
1260 return "Tuple(%s)" % (repr(self
.nodes
),)
1262 class UnaryAdd(Node
):
1263 def __init__(self
, expr
, lineno
=None):
1265 self
.lineno
= lineno
1267 def getChildren(self
):
1270 def getChildNodes(self
):
1274 return "UnaryAdd(%s)" % (repr(self
.expr
),)
1276 class UnarySub(Node
):
1277 def __init__(self
, expr
, lineno
=None):
1279 self
.lineno
= lineno
1281 def getChildren(self
):
1284 def getChildNodes(self
):
1288 return "UnarySub(%s)" % (repr(self
.expr
),)
1291 def __init__(self
, test
, body
, else_
, lineno
=None):
1295 self
.lineno
= lineno
1297 def getChildren(self
):
1299 children
.append(self
.test
)
1300 children
.append(self
.body
)
1301 children
.append(self
.else_
)
1302 return tuple(children
)
1304 def getChildNodes(self
):
1306 nodelist
.append(self
.test
)
1307 nodelist
.append(self
.body
)
1308 if self
.else_
is not None:
1309 nodelist
.append(self
.else_
)
1310 return tuple(nodelist
)
1313 return "While(%s, %s, %s)" % (repr(self
.test
), repr(self
.body
), repr(self
.else_
))
1316 def __init__(self
, expr
, vars, body
, lineno
=None):
1320 self
.lineno
= lineno
1322 def getChildren(self
):
1324 children
.append(self
.expr
)
1325 children
.append(self
.vars)
1326 children
.append(self
.body
)
1327 return tuple(children
)
1329 def getChildNodes(self
):
1331 nodelist
.append(self
.expr
)
1332 if self
.vars is not None:
1333 nodelist
.append(self
.vars)
1334 nodelist
.append(self
.body
)
1335 return tuple(nodelist
)
1338 return "With(%s, %s, %s)" % (repr(self
.expr
), repr(self
.vars), repr(self
.body
))
1341 def __init__(self
, value
, lineno
=None):
1343 self
.lineno
= lineno
1345 def getChildren(self
):
1348 def getChildNodes(self
):
1352 return "Yield(%s)" % (repr(self
.value
),)
1354 for name
, obj
in globals().items():
1355 if isinstance(obj
, type) and issubclass(obj
, Node
):
1356 nodes
[name
.lower()] = obj