blob: 53dc410ee82f203c437280e237770c36430ff15d [file] [log] [blame]
Jeremy Hylton628d2892000-10-25 18:02:59 +00001"""Python abstract syntax node definitions
2
3This file is automatically generated.
4"""
5from types import TupleType, ListType
Jeremy Hylton9605c112000-02-08 18:57:32 +00006from consts import CO_VARARGS, CO_VARKEYWORDS
Jeremy Hyltonf968e852000-02-04 00:25:23 +00007
Jeremy Hylton628d2892000-10-25 18:02:59 +00008def flatten(list):
9 l = []
10 for elt in list:
11 t = type(elt)
12 if t is TupleType or t is ListType:
13 for elt2 in flatten(elt):
14 l.append(elt2)
15 else:
16 l.append(elt)
17 return l
18
Jeremy Hylton5477f522001-08-29 18:08:02 +000019def flatten_nodes(list):
20 return [n for n in flatten(list) if isinstance(n, Node)]
21
Jeremy Hylton628d2892000-10-25 18:02:59 +000022def asList(nodes):
23 l = []
24 for item in nodes:
25 if hasattr(item, "asList"):
26 l.append(item.asList())
27 else:
28 t = type(item)
29 if t is TupleType or t is ListType:
30 l.append(tuple(asList(item)))
31 else:
32 l.append(item)
33 return l
34
Jeremy Hyltonf968e852000-02-04 00:25:23 +000035nodes = {}
36
Jeremy Hylton5477f522001-08-29 18:08:02 +000037class Node: # an abstract base class
38 lineno = None # provide a lineno for nodes that don't have one
Jeremy Hylton628d2892000-10-25 18:02:59 +000039 def getType(self):
Jeremy Hylton5477f522001-08-29 18:08:02 +000040 pass # implemented by subclass
Jeremy Hylton628d2892000-10-25 18:02:59 +000041 def getChildren(self):
Jeremy Hylton5477f522001-08-29 18:08:02 +000042 pass # implemented by subclasses
Jeremy Hylton628d2892000-10-25 18:02:59 +000043 def asList(self):
44 return tuple(asList(self.getChildren()))
Jeremy Hylton7713ac22001-08-14 18:59:01 +000045 def getChildNodes(self):
Jeremy Hylton5477f522001-08-29 18:08:02 +000046 pass # implemented by subclasses
Jeremy Hyltonf968e852000-02-04 00:25:23 +000047
48class EmptyNode(Node):
Jeremy Hylton5477f522001-08-29 18:08:02 +000049 pass
Jeremy Hyltonf968e852000-02-04 00:25:23 +000050
51class If(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000052 nodes["if"] = "If"
53 def __init__(self, tests, else_):
54 self.tests = tests
55 self.else_ = else_
Jeremy Hylton5477f522001-08-29 18:08:02 +000056
57 def getChildren(self):
58 children = []
59 children.extend(flatten(self.tests))
60 children.append(self.else_)
61 return tuple(children)
62
63 def getChildNodes(self):
64 nodes = []
65 nodes.extend(flatten_nodes(self.tests))
66 if self.else_ is not None: nodes.append(self.else_)
67 return tuple(nodes)
68
Jeremy Hylton628d2892000-10-25 18:02:59 +000069 def __repr__(self):
70 return "If(%s, %s)" % (repr(self.tests), repr(self.else_))
Jeremy Hyltonf968e852000-02-04 00:25:23 +000071
Jeremy Hylton9c048f92000-10-13 21:58:13 +000072class ListComp(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000073 nodes["listcomp"] = "ListComp"
74 def __init__(self, expr, quals):
75 self.expr = expr
76 self.quals = quals
Jeremy Hylton5477f522001-08-29 18:08:02 +000077
78 def getChildren(self):
79 children = []
80 children.append(self.expr)
81 children.extend(flatten(self.quals))
82 return tuple(children)
83
84 def getChildNodes(self):
85 nodes = []
86 nodes.append(self.expr)
87 nodes.extend(flatten_nodes(self.quals))
88 return tuple(nodes)
89
Jeremy Hylton628d2892000-10-25 18:02:59 +000090 def __repr__(self):
91 return "ListComp(%s, %s)" % (repr(self.expr), repr(self.quals))
Jeremy Hyltonf968e852000-02-04 00:25:23 +000092
93class Bitor(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000094 nodes["bitor"] = "Bitor"
95 def __init__(self, nodes):
96 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +000097
98 def getChildren(self):
99 children = []
100 children.extend(flatten(self.nodes))
101 return tuple(children)
102
103 def getChildNodes(self):
104 nodes = []
105 nodes.extend(flatten_nodes(self.nodes))
106 return tuple(nodes)
107
Jeremy Hylton628d2892000-10-25 18:02:59 +0000108 def __repr__(self):
109 return "Bitor(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000110
Jeremy Hylton628d2892000-10-25 18:02:59 +0000111class Pass(Node):
112 nodes["pass"] = "Pass"
113 def __init__(self, ):
114 pass
Jeremy Hylton5477f522001-08-29 18:08:02 +0000115
116 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000117 return ()
Jeremy Hylton5477f522001-08-29 18:08:02 +0000118
119 def getChildNodes(self):
120 return ()
121
Jeremy Hylton628d2892000-10-25 18:02:59 +0000122 def __repr__(self):
123 return "Pass()"
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000124
Jeremy Hylton628d2892000-10-25 18:02:59 +0000125class Module(Node):
126 nodes["module"] = "Module"
127 def __init__(self, doc, node):
128 self.doc = doc
129 self.node = node
Jeremy Hylton5477f522001-08-29 18:08:02 +0000130
131 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000132 return self.doc, self.node
Jeremy Hylton5477f522001-08-29 18:08:02 +0000133
134 def getChildNodes(self):
135 return self.node,
136
Jeremy Hylton628d2892000-10-25 18:02:59 +0000137 def __repr__(self):
138 return "Module(%s, %s)" % (repr(self.doc), repr(self.node))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000139
Jeremy Hylton628d2892000-10-25 18:02:59 +0000140class Global(Node):
141 nodes["global"] = "Global"
142 def __init__(self, names):
143 self.names = names
Jeremy Hylton5477f522001-08-29 18:08:02 +0000144
145 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000146 return self.names,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000147
148 def getChildNodes(self):
Jeremy Hyltonfff252d2001-09-14 22:40:36 +0000149 return ()
Jeremy Hylton5477f522001-08-29 18:08:02 +0000150
Jeremy Hylton628d2892000-10-25 18:02:59 +0000151 def __repr__(self):
152 return "Global(%s)" % (repr(self.names),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000153
Jeremy Hylton628d2892000-10-25 18:02:59 +0000154class CallFunc(Node):
155 nodes["callfunc"] = "CallFunc"
156 def __init__(self, node, args, star_args = None, dstar_args = None):
157 self.node = node
158 self.args = args
159 self.star_args = star_args
160 self.dstar_args = dstar_args
Jeremy Hylton5477f522001-08-29 18:08:02 +0000161
162 def getChildren(self):
163 children = []
164 children.append(self.node)
165 children.extend(flatten(self.args))
166 children.append(self.star_args)
167 children.append(self.dstar_args)
168 return tuple(children)
169
170 def getChildNodes(self):
171 nodes = []
172 nodes.append(self.node)
173 nodes.extend(flatten_nodes(self.args))
174 if self.star_args is not None: nodes.append(self.star_args)
175 if self.dstar_args is not None: nodes.append(self.dstar_args)
176 return tuple(nodes)
177
Jeremy Hylton628d2892000-10-25 18:02:59 +0000178 def __repr__(self):
179 return "CallFunc(%s, %s, %s, %s)" % (repr(self.node), repr(self.args), repr(self.star_args), repr(self.dstar_args))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000180
Jeremy Hylton628d2892000-10-25 18:02:59 +0000181class Printnl(Node):
182 nodes["printnl"] = "Printnl"
183 def __init__(self, nodes, dest):
184 self.nodes = nodes
185 self.dest = dest
Jeremy Hylton5477f522001-08-29 18:08:02 +0000186
187 def getChildren(self):
188 children = []
189 children.extend(flatten(self.nodes))
190 children.append(self.dest)
191 return tuple(children)
192
193 def getChildNodes(self):
194 nodes = []
195 nodes.extend(flatten_nodes(self.nodes))
196 if self.dest is not None: nodes.append(self.dest)
197 return tuple(nodes)
198
Jeremy Hylton628d2892000-10-25 18:02:59 +0000199 def __repr__(self):
200 return "Printnl(%s, %s)" % (repr(self.nodes), repr(self.dest))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000201
Jeremy Hylton628d2892000-10-25 18:02:59 +0000202class Tuple(Node):
203 nodes["tuple"] = "Tuple"
204 def __init__(self, nodes):
205 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +0000206
207 def getChildren(self):
208 children = []
209 children.extend(flatten(self.nodes))
210 return tuple(children)
211
212 def getChildNodes(self):
213 nodes = []
214 nodes.extend(flatten_nodes(self.nodes))
215 return tuple(nodes)
216
Jeremy Hylton628d2892000-10-25 18:02:59 +0000217 def __repr__(self):
218 return "Tuple(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000219
Jeremy Hylton628d2892000-10-25 18:02:59 +0000220class Compare(Node):
221 nodes["compare"] = "Compare"
222 def __init__(self, expr, ops):
223 self.expr = expr
224 self.ops = ops
Jeremy Hylton5477f522001-08-29 18:08:02 +0000225
226 def getChildren(self):
227 children = []
228 children.append(self.expr)
229 children.extend(flatten(self.ops))
230 return tuple(children)
231
232 def getChildNodes(self):
233 nodes = []
234 nodes.append(self.expr)
235 nodes.extend(flatten_nodes(self.ops))
236 return tuple(nodes)
237
Jeremy Hylton628d2892000-10-25 18:02:59 +0000238 def __repr__(self):
239 return "Compare(%s, %s)" % (repr(self.expr), repr(self.ops))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000240
Jeremy Hylton628d2892000-10-25 18:02:59 +0000241class And(Node):
242 nodes["and"] = "And"
243 def __init__(self, nodes):
244 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +0000245
246 def getChildren(self):
247 children = []
248 children.extend(flatten(self.nodes))
249 return tuple(children)
250
251 def getChildNodes(self):
252 nodes = []
253 nodes.extend(flatten_nodes(self.nodes))
254 return tuple(nodes)
255
Jeremy Hylton628d2892000-10-25 18:02:59 +0000256 def __repr__(self):
257 return "And(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000258
Jeremy Hylton628d2892000-10-25 18:02:59 +0000259class Lambda(Node):
260 nodes["lambda"] = "Lambda"
261 def __init__(self, argnames, defaults, flags, code):
262 self.argnames = argnames
263 self.defaults = defaults
264 self.flags = flags
265 self.code = code
266 self.varargs = self.kwargs = None
267 if flags & CO_VARARGS:
268 self.varargs = 1
269 if flags & CO_VARKEYWORDS:
270 self.kwargs = 1
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000271
Jeremy Hylton5477f522001-08-29 18:08:02 +0000272
273 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000274 return self.argnames, self.defaults, self.flags, self.code
Jeremy Hylton5477f522001-08-29 18:08:02 +0000275
276 def getChildNodes(self):
277 return self.code,
278
Jeremy Hylton628d2892000-10-25 18:02:59 +0000279 def __repr__(self):
280 return "Lambda(%s, %s, %s, %s)" % (repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.code))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000281
Jeremy Hylton628d2892000-10-25 18:02:59 +0000282class Assign(Node):
283 nodes["assign"] = "Assign"
284 def __init__(self, nodes, expr):
285 self.nodes = nodes
286 self.expr = expr
Jeremy Hylton5477f522001-08-29 18:08:02 +0000287
288 def getChildren(self):
289 children = []
290 children.extend(flatten(self.nodes))
291 children.append(self.expr)
292 return tuple(children)
293
294 def getChildNodes(self):
295 nodes = []
296 nodes.extend(flatten_nodes(self.nodes))
297 nodes.append(self.expr)
298 return tuple(nodes)
299
Jeremy Hylton628d2892000-10-25 18:02:59 +0000300 def __repr__(self):
301 return "Assign(%s, %s)" % (repr(self.nodes), repr(self.expr))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000302
303class Sub(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000304 nodes["sub"] = "Sub"
305 def __init__(self, (left, right)):
306 self.left = left
307 self.right = right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000308
309 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000310 return self.left, self.right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000311
312 def getChildNodes(self):
313 return self.left, self.right
314
Jeremy Hylton628d2892000-10-25 18:02:59 +0000315 def __repr__(self):
Jeremy Hyltonab427b82001-08-18 00:14:37 +0000316 return "Sub((%s, %s))" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000317
Jeremy Hylton628d2892000-10-25 18:02:59 +0000318class ListCompIf(Node):
319 nodes["listcompif"] = "ListCompIf"
320 def __init__(self, test):
321 self.test = test
Jeremy Hylton5477f522001-08-29 18:08:02 +0000322
323 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000324 return self.test,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000325
326 def getChildNodes(self):
327 return self.test,
328
Jeremy Hylton628d2892000-10-25 18:02:59 +0000329 def __repr__(self):
330 return "ListCompIf(%s)" % (repr(self.test),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000331
332class Div(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000333 nodes["div"] = "Div"
334 def __init__(self, (left, right)):
335 self.left = left
336 self.right = right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000337
338 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000339 return self.left, self.right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000340
341 def getChildNodes(self):
342 return self.left, self.right
343
Jeremy Hylton628d2892000-10-25 18:02:59 +0000344 def __repr__(self):
Jeremy Hyltonab427b82001-08-18 00:14:37 +0000345 return "Div((%s, %s))" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000346
Jeremy Hylton628d2892000-10-25 18:02:59 +0000347class Discard(Node):
348 nodes["discard"] = "Discard"
349 def __init__(self, expr):
350 self.expr = expr
Jeremy Hylton5477f522001-08-29 18:08:02 +0000351
352 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000353 return self.expr,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000354
355 def getChildNodes(self):
356 return self.expr,
357
Jeremy Hylton628d2892000-10-25 18:02:59 +0000358 def __repr__(self):
359 return "Discard(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000360
Jeremy Hylton628d2892000-10-25 18:02:59 +0000361class Backquote(Node):
362 nodes["backquote"] = "Backquote"
363 def __init__(self, expr):
364 self.expr = expr
Jeremy Hylton5477f522001-08-29 18:08:02 +0000365
366 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000367 return self.expr,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000368
369 def getChildNodes(self):
370 return self.expr,
371
Jeremy Hylton628d2892000-10-25 18:02:59 +0000372 def __repr__(self):
373 return "Backquote(%s)" % (repr(self.expr),)
374
375class RightShift(Node):
376 nodes["rightshift"] = "RightShift"
377 def __init__(self, (left, right)):
378 self.left = left
379 self.right = right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000380
381 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000382 return self.left, self.right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000383
384 def getChildNodes(self):
385 return self.left, self.right
386
Jeremy Hylton628d2892000-10-25 18:02:59 +0000387 def __repr__(self):
Jeremy Hyltonab427b82001-08-18 00:14:37 +0000388 return "RightShift((%s, %s))" % (repr(self.left), repr(self.right))
Jeremy Hylton628d2892000-10-25 18:02:59 +0000389
390class Continue(Node):
391 nodes["continue"] = "Continue"
392 def __init__(self, ):
393 pass
Jeremy Hylton5477f522001-08-29 18:08:02 +0000394
395 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000396 return ()
Jeremy Hylton5477f522001-08-29 18:08:02 +0000397
398 def getChildNodes(self):
399 return ()
400
Jeremy Hylton628d2892000-10-25 18:02:59 +0000401 def __repr__(self):
402 return "Continue()"
403
404class While(Node):
405 nodes["while"] = "While"
406 def __init__(self, test, body, else_):
407 self.test = test
408 self.body = body
409 self.else_ = else_
Jeremy Hylton5477f522001-08-29 18:08:02 +0000410
411 def getChildren(self):
412 children = []
413 children.append(self.test)
414 children.append(self.body)
415 children.append(self.else_)
416 return tuple(children)
417
418 def getChildNodes(self):
419 nodes = []
420 nodes.append(self.test)
421 nodes.append(self.body)
422 if self.else_ is not None: nodes.append(self.else_)
423 return tuple(nodes)
424
Jeremy Hylton628d2892000-10-25 18:02:59 +0000425 def __repr__(self):
426 return "While(%s, %s, %s)" % (repr(self.test), repr(self.body), repr(self.else_))
427
428class AssName(Node):
429 nodes["assname"] = "AssName"
430 def __init__(self, name, flags):
431 self.name = name
432 self.flags = flags
Jeremy Hylton5477f522001-08-29 18:08:02 +0000433
434 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000435 return self.name, self.flags
Jeremy Hylton5477f522001-08-29 18:08:02 +0000436
437 def getChildNodes(self):
438 return ()
439
Jeremy Hylton628d2892000-10-25 18:02:59 +0000440 def __repr__(self):
441 return "AssName(%s, %s)" % (repr(self.name), repr(self.flags))
442
443class LeftShift(Node):
444 nodes["leftshift"] = "LeftShift"
445 def __init__(self, (left, right)):
446 self.left = left
447 self.right = right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000448
449 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000450 return self.left, self.right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000451
452 def getChildNodes(self):
453 return self.left, self.right
454
Jeremy Hylton628d2892000-10-25 18:02:59 +0000455 def __repr__(self):
Jeremy Hyltonab427b82001-08-18 00:14:37 +0000456 return "LeftShift((%s, %s))" % (repr(self.left), repr(self.right))
Jeremy Hylton628d2892000-10-25 18:02:59 +0000457
458class Mul(Node):
459 nodes["mul"] = "Mul"
460 def __init__(self, (left, right)):
461 self.left = left
462 self.right = right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000463
464 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000465 return self.left, self.right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000466
467 def getChildNodes(self):
468 return self.left, self.right
469
Jeremy Hylton628d2892000-10-25 18:02:59 +0000470 def __repr__(self):
Jeremy Hyltonab427b82001-08-18 00:14:37 +0000471 return "Mul((%s, %s))" % (repr(self.left), repr(self.right))
Jeremy Hylton628d2892000-10-25 18:02:59 +0000472
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000473class Yield(Node):
474 nodes["yield"] = "Yield"
475 def __init__(self, value):
476 self.value = value
Jeremy Hylton5477f522001-08-29 18:08:02 +0000477
478 def getChildren(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000479 return self.value,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000480
481 def getChildNodes(self):
482 return self.value,
483
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000484 def __repr__(self):
485 return "Yield(%s)" % (repr(self.value),)
486
Jeremy Hylton628d2892000-10-25 18:02:59 +0000487class List(Node):
488 nodes["list"] = "List"
489 def __init__(self, nodes):
490 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +0000491
492 def getChildren(self):
493 children = []
494 children.extend(flatten(self.nodes))
495 return tuple(children)
496
497 def getChildNodes(self):
498 nodes = []
499 nodes.extend(flatten_nodes(self.nodes))
500 return tuple(nodes)
501
Jeremy Hylton628d2892000-10-25 18:02:59 +0000502 def __repr__(self):
503 return "List(%s)" % (repr(self.nodes),)
504
505class AugAssign(Node):
506 nodes["augassign"] = "AugAssign"
507 def __init__(self, node, op, expr):
508 self.node = node
509 self.op = op
510 self.expr = expr
Jeremy Hylton5477f522001-08-29 18:08:02 +0000511
512 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000513 return self.node, self.op, self.expr
Jeremy Hylton5477f522001-08-29 18:08:02 +0000514
515 def getChildNodes(self):
516 return self.node, self.expr
517
Jeremy Hylton628d2892000-10-25 18:02:59 +0000518 def __repr__(self):
519 return "AugAssign(%s, %s, %s)" % (repr(self.node), repr(self.op), repr(self.expr))
520
521class Or(Node):
522 nodes["or"] = "Or"
523 def __init__(self, nodes):
524 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +0000525
526 def getChildren(self):
527 children = []
528 children.extend(flatten(self.nodes))
529 return tuple(children)
530
531 def getChildNodes(self):
532 nodes = []
533 nodes.extend(flatten_nodes(self.nodes))
534 return tuple(nodes)
535
Jeremy Hylton628d2892000-10-25 18:02:59 +0000536 def __repr__(self):
537 return "Or(%s)" % (repr(self.nodes),)
538
539class Keyword(Node):
540 nodes["keyword"] = "Keyword"
541 def __init__(self, name, expr):
542 self.name = name
543 self.expr = expr
Jeremy Hylton5477f522001-08-29 18:08:02 +0000544
545 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000546 return self.name, self.expr
Jeremy Hylton5477f522001-08-29 18:08:02 +0000547
548 def getChildNodes(self):
549 return self.expr,
550
Jeremy Hylton628d2892000-10-25 18:02:59 +0000551 def __repr__(self):
552 return "Keyword(%s, %s)" % (repr(self.name), repr(self.expr))
553
554class AssAttr(Node):
555 nodes["assattr"] = "AssAttr"
556 def __init__(self, expr, attrname, flags):
557 self.expr = expr
558 self.attrname = attrname
559 self.flags = flags
Jeremy Hylton5477f522001-08-29 18:08:02 +0000560
561 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000562 return self.expr, self.attrname, self.flags
Jeremy Hylton5477f522001-08-29 18:08:02 +0000563
564 def getChildNodes(self):
565 return self.expr,
566
Jeremy Hylton628d2892000-10-25 18:02:59 +0000567 def __repr__(self):
568 return "AssAttr(%s, %s, %s)" % (repr(self.expr), repr(self.attrname), repr(self.flags))
569
570class Const(Node):
571 nodes["const"] = "Const"
572 def __init__(self, value):
573 self.value = value
Jeremy Hylton5477f522001-08-29 18:08:02 +0000574
575 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000576 return self.value,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000577
578 def getChildNodes(self):
579 return ()
580
Jeremy Hylton628d2892000-10-25 18:02:59 +0000581 def __repr__(self):
582 return "Const(%s)" % (repr(self.value),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000583
584class Mod(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000585 nodes["mod"] = "Mod"
586 def __init__(self, (left, right)):
587 self.left = left
588 self.right = right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000589
590 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000591 return self.left, self.right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000592
593 def getChildNodes(self):
594 return self.left, self.right
595
Jeremy Hylton628d2892000-10-25 18:02:59 +0000596 def __repr__(self):
Jeremy Hyltonab427b82001-08-18 00:14:37 +0000597 return "Mod((%s, %s))" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000598
Jeremy Hylton628d2892000-10-25 18:02:59 +0000599class Class(Node):
600 nodes["class"] = "Class"
601 def __init__(self, name, bases, doc, code):
602 self.name = name
603 self.bases = bases
604 self.doc = doc
605 self.code = code
Jeremy Hylton5477f522001-08-29 18:08:02 +0000606
607 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000608 return self.name, self.bases, self.doc, self.code
Jeremy Hylton5477f522001-08-29 18:08:02 +0000609
610 def getChildNodes(self):
611 return self.code,
612
Jeremy Hylton628d2892000-10-25 18:02:59 +0000613 def __repr__(self):
614 return "Class(%s, %s, %s, %s)" % (repr(self.name), repr(self.bases), repr(self.doc), repr(self.code))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000615
Jeremy Hylton628d2892000-10-25 18:02:59 +0000616class Not(Node):
617 nodes["not"] = "Not"
618 def __init__(self, expr):
619 self.expr = expr
Jeremy Hylton5477f522001-08-29 18:08:02 +0000620
621 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000622 return self.expr,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000623
624 def getChildNodes(self):
625 return self.expr,
626
Jeremy Hylton628d2892000-10-25 18:02:59 +0000627 def __repr__(self):
628 return "Not(%s)" % (repr(self.expr),)
629
630class Bitxor(Node):
631 nodes["bitxor"] = "Bitxor"
632 def __init__(self, nodes):
633 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +0000634
635 def getChildren(self):
636 children = []
637 children.extend(flatten(self.nodes))
638 return tuple(children)
639
640 def getChildNodes(self):
641 nodes = []
642 nodes.extend(flatten_nodes(self.nodes))
643 return tuple(nodes)
644
Jeremy Hylton628d2892000-10-25 18:02:59 +0000645 def __repr__(self):
646 return "Bitxor(%s)" % (repr(self.nodes),)
647
648class TryFinally(Node):
649 nodes["tryfinally"] = "TryFinally"
650 def __init__(self, body, final):
651 self.body = body
652 self.final = final
Jeremy Hylton5477f522001-08-29 18:08:02 +0000653
654 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000655 return self.body, self.final
Jeremy Hylton5477f522001-08-29 18:08:02 +0000656
657 def getChildNodes(self):
658 return self.body, self.final
659
Jeremy Hylton628d2892000-10-25 18:02:59 +0000660 def __repr__(self):
661 return "TryFinally(%s, %s)" % (repr(self.body), repr(self.final))
662
Jeremy Hylton5477f522001-08-29 18:08:02 +0000663class FloorDiv(Node):
664 nodes["floordiv"] = "FloorDiv"
665 def __init__(self, (left, right)):
666 self.left = left
667 self.right = right
668
669 def getChildren(self):
670 return self.left, self.right
671
672 def getChildNodes(self):
673 return self.left, self.right
674
675 def __repr__(self):
676 return "FloorDiv((%s, %s))" % (repr(self.left), repr(self.right))
677
Jeremy Hylton628d2892000-10-25 18:02:59 +0000678class Bitand(Node):
679 nodes["bitand"] = "Bitand"
680 def __init__(self, nodes):
681 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +0000682
683 def getChildren(self):
684 children = []
685 children.extend(flatten(self.nodes))
686 return tuple(children)
687
688 def getChildNodes(self):
689 nodes = []
690 nodes.extend(flatten_nodes(self.nodes))
691 return tuple(nodes)
692
Jeremy Hylton628d2892000-10-25 18:02:59 +0000693 def __repr__(self):
694 return "Bitand(%s)" % (repr(self.nodes),)
695
696class Break(Node):
697 nodes["break"] = "Break"
698 def __init__(self, ):
699 pass
Jeremy Hylton5477f522001-08-29 18:08:02 +0000700
701 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000702 return ()
Jeremy Hylton5477f522001-08-29 18:08:02 +0000703
704 def getChildNodes(self):
705 return ()
706
Jeremy Hylton628d2892000-10-25 18:02:59 +0000707 def __repr__(self):
708 return "Break()"
709
710class Stmt(Node):
711 nodes["stmt"] = "Stmt"
712 def __init__(self, nodes):
713 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +0000714
715 def getChildren(self):
716 children = []
717 children.extend(flatten(self.nodes))
718 return tuple(children)
719
720 def getChildNodes(self):
721 nodes = []
722 nodes.extend(flatten_nodes(self.nodes))
723 return tuple(nodes)
724
Jeremy Hylton628d2892000-10-25 18:02:59 +0000725 def __repr__(self):
726 return "Stmt(%s)" % (repr(self.nodes),)
727
728class Assert(Node):
729 nodes["assert"] = "Assert"
730 def __init__(self, test, fail):
731 self.test = test
732 self.fail = fail
Jeremy Hylton5477f522001-08-29 18:08:02 +0000733
734 def getChildren(self):
735 children = []
736 children.append(self.test)
737 children.append(self.fail)
738 return tuple(children)
739
740 def getChildNodes(self):
741 nodes = []
742 nodes.append(self.test)
743 if self.fail is not None: nodes.append(self.fail)
744 return tuple(nodes)
745
Jeremy Hylton628d2892000-10-25 18:02:59 +0000746 def __repr__(self):
747 return "Assert(%s, %s)" % (repr(self.test), repr(self.fail))
748
749class Exec(Node):
750 nodes["exec"] = "Exec"
751 def __init__(self, expr, locals, globals):
752 self.expr = expr
753 self.locals = locals
754 self.globals = globals
Jeremy Hylton5477f522001-08-29 18:08:02 +0000755
756 def getChildren(self):
757 children = []
758 children.append(self.expr)
759 children.append(self.locals)
760 children.append(self.globals)
761 return tuple(children)
762
763 def getChildNodes(self):
764 nodes = []
765 nodes.append(self.expr)
766 if self.locals is not None: nodes.append(self.locals)
767 if self.globals is not None: nodes.append(self.globals)
768 return tuple(nodes)
769
Jeremy Hylton628d2892000-10-25 18:02:59 +0000770 def __repr__(self):
771 return "Exec(%s, %s, %s)" % (repr(self.expr), repr(self.locals), repr(self.globals))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000772
773class Power(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000774 nodes["power"] = "Power"
775 def __init__(self, (left, right)):
776 self.left = left
777 self.right = right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000778
779 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000780 return self.left, self.right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000781
782 def getChildNodes(self):
783 return self.left, self.right
784
Jeremy Hylton628d2892000-10-25 18:02:59 +0000785 def __repr__(self):
Jeremy Hyltonab427b82001-08-18 00:14:37 +0000786 return "Power((%s, %s))" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000787
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000788class Ellipsis(Node):
789 nodes["ellipsis"] = "Ellipsis"
790 def __init__(self, ):
791 pass
Jeremy Hylton5477f522001-08-29 18:08:02 +0000792
793 def getChildren(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000794 return ()
Jeremy Hylton5477f522001-08-29 18:08:02 +0000795
796 def getChildNodes(self):
797 return ()
798
Jeremy Hylton628d2892000-10-25 18:02:59 +0000799 def __repr__(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000800 return "Ellipsis()"
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000801
Jeremy Hylton628d2892000-10-25 18:02:59 +0000802class Return(Node):
803 nodes["return"] = "Return"
804 def __init__(self, value):
805 self.value = value
Jeremy Hylton5477f522001-08-29 18:08:02 +0000806
807 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000808 return self.value,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000809
810 def getChildNodes(self):
811 return self.value,
812
Jeremy Hylton628d2892000-10-25 18:02:59 +0000813 def __repr__(self):
814 return "Return(%s)" % (repr(self.value),)
815
816class Add(Node):
817 nodes["add"] = "Add"
818 def __init__(self, (left, right)):
819 self.left = left
820 self.right = right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000821
822 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000823 return self.left, self.right
Jeremy Hylton5477f522001-08-29 18:08:02 +0000824
825 def getChildNodes(self):
826 return self.left, self.right
827
Jeremy Hylton628d2892000-10-25 18:02:59 +0000828 def __repr__(self):
Jeremy Hyltonab427b82001-08-18 00:14:37 +0000829 return "Add((%s, %s))" % (repr(self.left), repr(self.right))
Jeremy Hylton628d2892000-10-25 18:02:59 +0000830
831class Function(Node):
832 nodes["function"] = "Function"
833 def __init__(self, name, argnames, defaults, flags, doc, code):
834 self.name = name
835 self.argnames = argnames
836 self.defaults = defaults
837 self.flags = flags
838 self.doc = doc
839 self.code = code
840 self.varargs = self.kwargs = None
841 if flags & CO_VARARGS:
842 self.varargs = 1
843 if flags & CO_VARKEYWORDS:
844 self.kwargs = 1
845
846
Jeremy Hylton5477f522001-08-29 18:08:02 +0000847
848 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000849 return self.name, self.argnames, self.defaults, self.flags, self.doc, self.code
Jeremy Hylton5477f522001-08-29 18:08:02 +0000850
851 def getChildNodes(self):
852 return self.code,
853
Jeremy Hylton628d2892000-10-25 18:02:59 +0000854 def __repr__(self):
855 return "Function(%s, %s, %s, %s, %s, %s)" % (repr(self.name), repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.doc), repr(self.code))
856
857class TryExcept(Node):
858 nodes["tryexcept"] = "TryExcept"
859 def __init__(self, body, handlers, else_):
860 self.body = body
861 self.handlers = handlers
862 self.else_ = else_
Jeremy Hylton5477f522001-08-29 18:08:02 +0000863
864 def getChildren(self):
865 children = []
866 children.append(self.body)
867 children.extend(flatten(self.handlers))
868 children.append(self.else_)
869 return tuple(children)
870
871 def getChildNodes(self):
872 nodes = []
873 nodes.append(self.body)
874 nodes.extend(flatten_nodes(self.handlers))
875 if self.else_ is not None: nodes.append(self.else_)
876 return tuple(nodes)
877
Jeremy Hylton628d2892000-10-25 18:02:59 +0000878 def __repr__(self):
879 return "TryExcept(%s, %s, %s)" % (repr(self.body), repr(self.handlers), repr(self.else_))
880
881class Subscript(Node):
882 nodes["subscript"] = "Subscript"
883 def __init__(self, expr, flags, subs):
884 self.expr = expr
885 self.flags = flags
886 self.subs = subs
Jeremy Hylton5477f522001-08-29 18:08:02 +0000887
888 def getChildren(self):
889 children = []
890 children.append(self.expr)
891 children.append(self.flags)
892 children.extend(flatten(self.subs))
893 return tuple(children)
894
895 def getChildNodes(self):
896 nodes = []
897 nodes.append(self.expr)
898 nodes.extend(flatten_nodes(self.subs))
899 return tuple(nodes)
900
Jeremy Hylton628d2892000-10-25 18:02:59 +0000901 def __repr__(self):
902 return "Subscript(%s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.subs))
903
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000904class Import(Node):
905 nodes["import"] = "Import"
906 def __init__(self, names):
907 self.names = names
Jeremy Hylton5477f522001-08-29 18:08:02 +0000908
909 def getChildren(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000910 return self.names,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000911
912 def getChildNodes(self):
913 return ()
914
Jeremy Hylton628d2892000-10-25 18:02:59 +0000915 def __repr__(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000916 return "Import(%s)" % (repr(self.names),)
Jeremy Hylton628d2892000-10-25 18:02:59 +0000917
918class Print(Node):
919 nodes["print"] = "Print"
920 def __init__(self, nodes, dest):
921 self.nodes = nodes
922 self.dest = dest
Jeremy Hylton5477f522001-08-29 18:08:02 +0000923
924 def getChildren(self):
925 children = []
926 children.extend(flatten(self.nodes))
927 children.append(self.dest)
928 return tuple(children)
929
930 def getChildNodes(self):
931 nodes = []
932 nodes.extend(flatten_nodes(self.nodes))
933 if self.dest is not None: nodes.append(self.dest)
934 return tuple(nodes)
935
Jeremy Hylton628d2892000-10-25 18:02:59 +0000936 def __repr__(self):
937 return "Print(%s, %s)" % (repr(self.nodes), repr(self.dest))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000938
939class UnaryAdd(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000940 nodes["unaryadd"] = "UnaryAdd"
941 def __init__(self, expr):
942 self.expr = expr
Jeremy Hylton5477f522001-08-29 18:08:02 +0000943
944 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000945 return self.expr,
Jeremy Hylton5477f522001-08-29 18:08:02 +0000946
947 def getChildNodes(self):
948 return self.expr,
949
Jeremy Hylton628d2892000-10-25 18:02:59 +0000950 def __repr__(self):
951 return "UnaryAdd(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000952
Jeremy Hylton628d2892000-10-25 18:02:59 +0000953class ListCompFor(Node):
954 nodes["listcompfor"] = "ListCompFor"
955 def __init__(self, assign, list, ifs):
956 self.assign = assign
957 self.list = list
958 self.ifs = ifs
Jeremy Hylton5477f522001-08-29 18:08:02 +0000959
960 def getChildren(self):
961 children = []
962 children.append(self.assign)
963 children.append(self.list)
964 children.extend(flatten(self.ifs))
965 return tuple(children)
966
967 def getChildNodes(self):
968 nodes = []
969 nodes.append(self.assign)
970 nodes.append(self.list)
971 nodes.extend(flatten_nodes(self.ifs))
972 return tuple(nodes)
973
Jeremy Hylton628d2892000-10-25 18:02:59 +0000974 def __repr__(self):
975 return "ListCompFor(%s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.ifs))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000976
Jeremy Hylton628d2892000-10-25 18:02:59 +0000977class Dict(Node):
978 nodes["dict"] = "Dict"
979 def __init__(self, items):
980 self.items = items
Jeremy Hylton5477f522001-08-29 18:08:02 +0000981
982 def getChildren(self):
983 children = []
984 children.extend(flatten(self.items))
985 return tuple(children)
986
987 def getChildNodes(self):
988 nodes = []
989 nodes.extend(flatten_nodes(self.items))
990 return tuple(nodes)
991
Jeremy Hylton628d2892000-10-25 18:02:59 +0000992 def __repr__(self):
993 return "Dict(%s)" % (repr(self.items),)
994
995class Getattr(Node):
996 nodes["getattr"] = "Getattr"
997 def __init__(self, expr, attrname):
998 self.expr = expr
999 self.attrname = attrname
Jeremy Hylton5477f522001-08-29 18:08:02 +00001000
1001 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +00001002 return self.expr, self.attrname
Jeremy Hylton5477f522001-08-29 18:08:02 +00001003
1004 def getChildNodes(self):
1005 return self.expr,
1006
Jeremy Hylton628d2892000-10-25 18:02:59 +00001007 def __repr__(self):
1008 return "Getattr(%s, %s)" % (repr(self.expr), repr(self.attrname))
1009
1010class AssList(Node):
1011 nodes["asslist"] = "AssList"
1012 def __init__(self, nodes):
1013 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +00001014
1015 def getChildren(self):
1016 children = []
1017 children.extend(flatten(self.nodes))
1018 return tuple(children)
1019
1020 def getChildNodes(self):
1021 nodes = []
1022 nodes.extend(flatten_nodes(self.nodes))
1023 return tuple(nodes)
1024
Jeremy Hylton628d2892000-10-25 18:02:59 +00001025 def __repr__(self):
1026 return "AssList(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +00001027
1028class UnarySub(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +00001029 nodes["unarysub"] = "UnarySub"
1030 def __init__(self, expr):
1031 self.expr = expr
Jeremy Hylton5477f522001-08-29 18:08:02 +00001032
1033 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +00001034 return self.expr,
Jeremy Hylton5477f522001-08-29 18:08:02 +00001035
1036 def getChildNodes(self):
1037 return self.expr,
1038
Jeremy Hylton628d2892000-10-25 18:02:59 +00001039 def __repr__(self):
1040 return "UnarySub(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +00001041
Jeremy Hylton628d2892000-10-25 18:02:59 +00001042class Sliceobj(Node):
1043 nodes["sliceobj"] = "Sliceobj"
1044 def __init__(self, nodes):
1045 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +00001046
1047 def getChildren(self):
1048 children = []
1049 children.extend(flatten(self.nodes))
1050 return tuple(children)
1051
1052 def getChildNodes(self):
1053 nodes = []
1054 nodes.extend(flatten_nodes(self.nodes))
1055 return tuple(nodes)
1056
Jeremy Hylton628d2892000-10-25 18:02:59 +00001057 def __repr__(self):
1058 return "Sliceobj(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +00001059
1060class Invert(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +00001061 nodes["invert"] = "Invert"
1062 def __init__(self, expr):
1063 self.expr = expr
Jeremy Hylton5477f522001-08-29 18:08:02 +00001064
1065 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +00001066 return self.expr,
Jeremy Hylton5477f522001-08-29 18:08:02 +00001067
1068 def getChildNodes(self):
1069 return self.expr,
1070
Jeremy Hylton628d2892000-10-25 18:02:59 +00001071 def __repr__(self):
1072 return "Invert(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +00001073
Jeremy Hylton628d2892000-10-25 18:02:59 +00001074class Name(Node):
1075 nodes["name"] = "Name"
1076 def __init__(self, name):
1077 self.name = name
Jeremy Hylton5477f522001-08-29 18:08:02 +00001078
1079 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +00001080 return self.name,
Jeremy Hylton5477f522001-08-29 18:08:02 +00001081
1082 def getChildNodes(self):
1083 return ()
1084
Jeremy Hylton628d2892000-10-25 18:02:59 +00001085 def __repr__(self):
1086 return "Name(%s)" % (repr(self.name),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +00001087
Jeremy Hylton628d2892000-10-25 18:02:59 +00001088class AssTuple(Node):
1089 nodes["asstuple"] = "AssTuple"
1090 def __init__(self, nodes):
1091 self.nodes = nodes
Jeremy Hylton5477f522001-08-29 18:08:02 +00001092
1093 def getChildren(self):
1094 children = []
1095 children.extend(flatten(self.nodes))
1096 return tuple(children)
1097
1098 def getChildNodes(self):
1099 nodes = []
1100 nodes.extend(flatten_nodes(self.nodes))
1101 return tuple(nodes)
1102
Jeremy Hylton628d2892000-10-25 18:02:59 +00001103 def __repr__(self):
1104 return "AssTuple(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +00001105
Jeremy Hylton628d2892000-10-25 18:02:59 +00001106class For(Node):
1107 nodes["for"] = "For"
1108 def __init__(self, assign, list, body, else_):
1109 self.assign = assign
1110 self.list = list
1111 self.body = body
1112 self.else_ = else_
Jeremy Hylton5477f522001-08-29 18:08:02 +00001113
1114 def getChildren(self):
1115 children = []
1116 children.append(self.assign)
1117 children.append(self.list)
1118 children.append(self.body)
1119 children.append(self.else_)
1120 return tuple(children)
1121
1122 def getChildNodes(self):
1123 nodes = []
1124 nodes.append(self.assign)
1125 nodes.append(self.list)
1126 nodes.append(self.body)
1127 if self.else_ is not None: nodes.append(self.else_)
1128 return tuple(nodes)
1129
Jeremy Hylton628d2892000-10-25 18:02:59 +00001130 def __repr__(self):
1131 return "For(%s, %s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.body), repr(self.else_))
1132
1133class Raise(Node):
1134 nodes["raise"] = "Raise"
1135 def __init__(self, expr1, expr2, expr3):
1136 self.expr1 = expr1
1137 self.expr2 = expr2
1138 self.expr3 = expr3
Jeremy Hylton5477f522001-08-29 18:08:02 +00001139
1140 def getChildren(self):
1141 children = []
1142 children.append(self.expr1)
1143 children.append(self.expr2)
1144 children.append(self.expr3)
1145 return tuple(children)
1146
1147 def getChildNodes(self):
1148 nodes = []
1149 if self.expr1 is not None: nodes.append(self.expr1)
1150 if self.expr2 is not None: nodes.append(self.expr2)
1151 if self.expr3 is not None: nodes.append(self.expr3)
1152 return tuple(nodes)
1153
Jeremy Hylton628d2892000-10-25 18:02:59 +00001154 def __repr__(self):
1155 return "Raise(%s, %s, %s)" % (repr(self.expr1), repr(self.expr2), repr(self.expr3))
1156
1157class From(Node):
1158 nodes["from"] = "From"
1159 def __init__(self, modname, names):
1160 self.modname = modname
1161 self.names = names
Jeremy Hylton5477f522001-08-29 18:08:02 +00001162
1163 def getChildren(self):
Jeremy Hylton628d2892000-10-25 18:02:59 +00001164 return self.modname, self.names
Jeremy Hylton5477f522001-08-29 18:08:02 +00001165
1166 def getChildNodes(self):
1167 return ()
1168
Jeremy Hylton628d2892000-10-25 18:02:59 +00001169 def __repr__(self):
1170 return "From(%s, %s)" % (repr(self.modname), repr(self.names))
1171
1172class Slice(Node):
1173 nodes["slice"] = "Slice"
1174 def __init__(self, expr, flags, lower, upper):
1175 self.expr = expr
1176 self.flags = flags
1177 self.lower = lower
1178 self.upper = upper
Jeremy Hylton5477f522001-08-29 18:08:02 +00001179
1180 def getChildren(self):
1181 children = []
1182 children.append(self.expr)
1183 children.append(self.flags)
1184 children.append(self.lower)
1185 children.append(self.upper)
1186 return tuple(children)
1187
1188 def getChildNodes(self):
1189 nodes = []
1190 nodes.append(self.expr)
1191 if self.lower is not None: nodes.append(self.lower)
1192 if self.upper is not None: nodes.append(self.upper)
1193 return tuple(nodes)
1194
Jeremy Hylton628d2892000-10-25 18:02:59 +00001195 def __repr__(self):
1196 return "Slice(%s, %s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.lower), repr(self.upper))
1197
Jeremy Hyltonf968e852000-02-04 00:25:23 +00001198klasses = globals()
1199for k in nodes.keys():
Jeremy Hylton628d2892000-10-25 18:02:59 +00001200 nodes[k] = klasses[nodes[k]]