blob: 7f29770fca15edf5f78c425e2588db440b242af6 [file] [log] [blame]
Jeremy Hylton628d2892000-10-25 18:02:59 +00001"""Python abstract syntax node definitions
2
3This file is automatically generated.
4"""
Jeremy Hylton8548f9b2001-08-18 00:07:14 +00005# XXX performance issues:
6# 1. getChildren() could be more efficient for many cases
7
Jeremy Hylton628d2892000-10-25 18:02:59 +00008from types import TupleType, ListType
Jeremy Hylton9605c112000-02-08 18:57:32 +00009from consts import CO_VARARGS, CO_VARKEYWORDS
Jeremy Hyltonf968e852000-02-04 00:25:23 +000010
Jeremy Hylton628d2892000-10-25 18:02:59 +000011def flatten(list):
12 l = []
13 for elt in list:
14 t = type(elt)
15 if t is TupleType or t is ListType:
16 for elt2 in flatten(elt):
17 l.append(elt2)
18 else:
19 l.append(elt)
20 return l
21
22def 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 Hyltonf968e852000-02-04 00:25:23 +000037class Node:
Jeremy Hylton628d2892000-10-25 18:02:59 +000038 lineno = None
39 def getType(self):
40 pass
41 def getChildren(self):
42 # XXX It would be better to generate flat values to begin with
43 return flatten(self._getChildren())
44 def asList(self):
45 return tuple(asList(self.getChildren()))
Jeremy Hylton7713ac22001-08-14 18:59:01 +000046 def getChildNodes(self):
Jeremy Hylton9272b142001-08-14 21:18:30 +000047 return [n for n in self.getChildren() if isinstance(n, Node)]
Jeremy Hyltonf968e852000-02-04 00:25:23 +000048
49class EmptyNode(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000050 def __init__(self):
51 self.lineno = None
Jeremy Hyltonf968e852000-02-04 00:25:23 +000052
53class If(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000054 nodes["if"] = "If"
55 def __init__(self, tests, else_):
56 self.tests = tests
57 self.else_ = else_
58 def _getChildren(self):
59 return self.tests, self.else_
60 def __repr__(self):
61 return "If(%s, %s)" % (repr(self.tests), repr(self.else_))
Jeremy Hyltonf968e852000-02-04 00:25:23 +000062
Jeremy Hylton9c048f92000-10-13 21:58:13 +000063class ListComp(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000064 nodes["listcomp"] = "ListComp"
65 def __init__(self, expr, quals):
66 self.expr = expr
67 self.quals = quals
68 def _getChildren(self):
69 return self.expr, self.quals
70 def __repr__(self):
71 return "ListComp(%s, %s)" % (repr(self.expr), repr(self.quals))
Jeremy Hyltonf968e852000-02-04 00:25:23 +000072
73class Bitor(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000074 nodes["bitor"] = "Bitor"
75 def __init__(self, nodes):
76 self.nodes = nodes
77 def _getChildren(self):
78 return self.nodes,
79 def __repr__(self):
80 return "Bitor(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +000081
Jeremy Hylton628d2892000-10-25 18:02:59 +000082class Pass(Node):
83 nodes["pass"] = "Pass"
84 def __init__(self, ):
85 pass
86 def _getChildren(self):
87 return ()
88 def __repr__(self):
89 return "Pass()"
Jeremy Hyltonf968e852000-02-04 00:25:23 +000090
Jeremy Hylton628d2892000-10-25 18:02:59 +000091class Module(Node):
92 nodes["module"] = "Module"
93 def __init__(self, doc, node):
94 self.doc = doc
95 self.node = node
96 def _getChildren(self):
97 return self.doc, self.node
98 def __repr__(self):
99 return "Module(%s, %s)" % (repr(self.doc), repr(self.node))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000100
Jeremy Hylton628d2892000-10-25 18:02:59 +0000101class Global(Node):
102 nodes["global"] = "Global"
103 def __init__(self, names):
104 self.names = names
105 def _getChildren(self):
106 return self.names,
107 def __repr__(self):
108 return "Global(%s)" % (repr(self.names),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000109
Jeremy Hylton628d2892000-10-25 18:02:59 +0000110class CallFunc(Node):
111 nodes["callfunc"] = "CallFunc"
112 def __init__(self, node, args, star_args = None, dstar_args = None):
113 self.node = node
114 self.args = args
115 self.star_args = star_args
116 self.dstar_args = dstar_args
117 def _getChildren(self):
118 return self.node, self.args, self.star_args, self.dstar_args
119 def __repr__(self):
120 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 +0000121
Jeremy Hylton628d2892000-10-25 18:02:59 +0000122class Printnl(Node):
123 nodes["printnl"] = "Printnl"
124 def __init__(self, nodes, dest):
125 self.nodes = nodes
126 self.dest = dest
127 def _getChildren(self):
128 return self.nodes, self.dest
129 def __repr__(self):
130 return "Printnl(%s, %s)" % (repr(self.nodes), repr(self.dest))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000131
Jeremy Hylton628d2892000-10-25 18:02:59 +0000132class Tuple(Node):
133 nodes["tuple"] = "Tuple"
134 def __init__(self, nodes):
135 self.nodes = nodes
136 def _getChildren(self):
137 return self.nodes,
138 def __repr__(self):
139 return "Tuple(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000140
Jeremy Hylton628d2892000-10-25 18:02:59 +0000141class Compare(Node):
142 nodes["compare"] = "Compare"
143 def __init__(self, expr, ops):
144 self.expr = expr
145 self.ops = ops
146 def _getChildren(self):
147 return self.expr, self.ops
148 def __repr__(self):
149 return "Compare(%s, %s)" % (repr(self.expr), repr(self.ops))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000150
Jeremy Hylton628d2892000-10-25 18:02:59 +0000151class And(Node):
152 nodes["and"] = "And"
153 def __init__(self, nodes):
154 self.nodes = nodes
155 def _getChildren(self):
156 return self.nodes,
157 def __repr__(self):
158 return "And(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000159
Jeremy Hylton628d2892000-10-25 18:02:59 +0000160class Lambda(Node):
161 nodes["lambda"] = "Lambda"
162 def __init__(self, argnames, defaults, flags, code):
163 self.argnames = argnames
164 self.defaults = defaults
165 self.flags = flags
166 self.code = code
167 self.varargs = self.kwargs = None
168 if flags & CO_VARARGS:
169 self.varargs = 1
170 if flags & CO_VARKEYWORDS:
171 self.kwargs = 1
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000172
Jeremy Hylton628d2892000-10-25 18:02:59 +0000173 def _getChildren(self):
174 return self.argnames, self.defaults, self.flags, self.code
175 def __repr__(self):
176 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 +0000177
Jeremy Hylton628d2892000-10-25 18:02:59 +0000178class Assign(Node):
179 nodes["assign"] = "Assign"
180 def __init__(self, nodes, expr):
181 self.nodes = nodes
182 self.expr = expr
183 def _getChildren(self):
184 return self.nodes, self.expr
185 def __repr__(self):
186 return "Assign(%s, %s)" % (repr(self.nodes), repr(self.expr))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000187
188class Sub(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000189 nodes["sub"] = "Sub"
190 def __init__(self, (left, right)):
191 self.left = left
192 self.right = right
193 def _getChildren(self):
194 return self.left, self.right
195 def __repr__(self):
196 return "Sub(%s, %s)" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000197
Jeremy Hylton628d2892000-10-25 18:02:59 +0000198class ListCompIf(Node):
199 nodes["listcompif"] = "ListCompIf"
200 def __init__(self, test):
201 self.test = test
202 def _getChildren(self):
203 return self.test,
204 def __repr__(self):
205 return "ListCompIf(%s)" % (repr(self.test),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000206
207class Div(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000208 nodes["div"] = "Div"
209 def __init__(self, (left, right)):
210 self.left = left
211 self.right = right
212 def _getChildren(self):
213 return self.left, self.right
214 def __repr__(self):
215 return "Div(%s, %s)" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000216
Jeremy Hylton628d2892000-10-25 18:02:59 +0000217class Discard(Node):
218 nodes["discard"] = "Discard"
219 def __init__(self, expr):
220 self.expr = expr
221 def _getChildren(self):
222 return self.expr,
223 def __repr__(self):
224 return "Discard(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000225
Jeremy Hylton628d2892000-10-25 18:02:59 +0000226class Backquote(Node):
227 nodes["backquote"] = "Backquote"
228 def __init__(self, expr):
229 self.expr = expr
230 def _getChildren(self):
231 return self.expr,
232 def __repr__(self):
233 return "Backquote(%s)" % (repr(self.expr),)
234
235class RightShift(Node):
236 nodes["rightshift"] = "RightShift"
237 def __init__(self, (left, right)):
238 self.left = left
239 self.right = right
240 def _getChildren(self):
241 return self.left, self.right
242 def __repr__(self):
243 return "RightShift(%s, %s)" % (repr(self.left), repr(self.right))
244
245class Continue(Node):
246 nodes["continue"] = "Continue"
247 def __init__(self, ):
248 pass
249 def _getChildren(self):
250 return ()
251 def __repr__(self):
252 return "Continue()"
253
254class While(Node):
255 nodes["while"] = "While"
256 def __init__(self, test, body, else_):
257 self.test = test
258 self.body = body
259 self.else_ = else_
260 def _getChildren(self):
261 return self.test, self.body, self.else_
262 def __repr__(self):
263 return "While(%s, %s, %s)" % (repr(self.test), repr(self.body), repr(self.else_))
264
265class AssName(Node):
266 nodes["assname"] = "AssName"
267 def __init__(self, name, flags):
268 self.name = name
269 self.flags = flags
270 def _getChildren(self):
271 return self.name, self.flags
272 def __repr__(self):
273 return "AssName(%s, %s)" % (repr(self.name), repr(self.flags))
274
275class LeftShift(Node):
276 nodes["leftshift"] = "LeftShift"
277 def __init__(self, (left, right)):
278 self.left = left
279 self.right = right
280 def _getChildren(self):
281 return self.left, self.right
282 def __repr__(self):
283 return "LeftShift(%s, %s)" % (repr(self.left), repr(self.right))
284
285class Mul(Node):
286 nodes["mul"] = "Mul"
287 def __init__(self, (left, right)):
288 self.left = left
289 self.right = right
290 def _getChildren(self):
291 return self.left, self.right
292 def __repr__(self):
293 return "Mul(%s, %s)" % (repr(self.left), repr(self.right))
294
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000295class Yield(Node):
296 nodes["yield"] = "Yield"
297 def __init__(self, value):
298 self.value = value
299 def _getChildren(self):
300 return self.value,
301 def __repr__(self):
302 return "Yield(%s)" % (repr(self.value),)
303
Jeremy Hylton628d2892000-10-25 18:02:59 +0000304class List(Node):
305 nodes["list"] = "List"
306 def __init__(self, nodes):
307 self.nodes = nodes
308 def _getChildren(self):
309 return self.nodes,
310 def __repr__(self):
311 return "List(%s)" % (repr(self.nodes),)
312
313class AugAssign(Node):
314 nodes["augassign"] = "AugAssign"
315 def __init__(self, node, op, expr):
316 self.node = node
317 self.op = op
318 self.expr = expr
319 def _getChildren(self):
320 return self.node, self.op, self.expr
321 def __repr__(self):
322 return "AugAssign(%s, %s, %s)" % (repr(self.node), repr(self.op), repr(self.expr))
323
324class Or(Node):
325 nodes["or"] = "Or"
326 def __init__(self, nodes):
327 self.nodes = nodes
328 def _getChildren(self):
329 return self.nodes,
330 def __repr__(self):
331 return "Or(%s)" % (repr(self.nodes),)
332
333class Keyword(Node):
334 nodes["keyword"] = "Keyword"
335 def __init__(self, name, expr):
336 self.name = name
337 self.expr = expr
338 def _getChildren(self):
339 return self.name, self.expr
340 def __repr__(self):
341 return "Keyword(%s, %s)" % (repr(self.name), repr(self.expr))
342
343class AssAttr(Node):
344 nodes["assattr"] = "AssAttr"
345 def __init__(self, expr, attrname, flags):
346 self.expr = expr
347 self.attrname = attrname
348 self.flags = flags
349 def _getChildren(self):
350 return self.expr, self.attrname, self.flags
351 def __repr__(self):
352 return "AssAttr(%s, %s, %s)" % (repr(self.expr), repr(self.attrname), repr(self.flags))
353
354class Const(Node):
355 nodes["const"] = "Const"
356 def __init__(self, value):
357 self.value = value
358 def _getChildren(self):
359 return self.value,
360 def __repr__(self):
361 return "Const(%s)" % (repr(self.value),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000362
363class Mod(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000364 nodes["mod"] = "Mod"
365 def __init__(self, (left, right)):
366 self.left = left
367 self.right = right
368 def _getChildren(self):
369 return self.left, self.right
370 def __repr__(self):
371 return "Mod(%s, %s)" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000372
Jeremy Hylton628d2892000-10-25 18:02:59 +0000373class Class(Node):
374 nodes["class"] = "Class"
375 def __init__(self, name, bases, doc, code):
376 self.name = name
377 self.bases = bases
378 self.doc = doc
379 self.code = code
380 def _getChildren(self):
381 return self.name, self.bases, self.doc, self.code
382 def __repr__(self):
383 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 +0000384
Jeremy Hylton628d2892000-10-25 18:02:59 +0000385class Not(Node):
386 nodes["not"] = "Not"
387 def __init__(self, expr):
388 self.expr = expr
389 def _getChildren(self):
390 return self.expr,
391 def __repr__(self):
392 return "Not(%s)" % (repr(self.expr),)
393
394class Bitxor(Node):
395 nodes["bitxor"] = "Bitxor"
396 def __init__(self, nodes):
397 self.nodes = nodes
398 def _getChildren(self):
399 return self.nodes,
400 def __repr__(self):
401 return "Bitxor(%s)" % (repr(self.nodes),)
402
403class TryFinally(Node):
404 nodes["tryfinally"] = "TryFinally"
405 def __init__(self, body, final):
406 self.body = body
407 self.final = final
408 def _getChildren(self):
409 return self.body, self.final
410 def __repr__(self):
411 return "TryFinally(%s, %s)" % (repr(self.body), repr(self.final))
412
413class Bitand(Node):
414 nodes["bitand"] = "Bitand"
415 def __init__(self, nodes):
416 self.nodes = nodes
417 def _getChildren(self):
418 return self.nodes,
419 def __repr__(self):
420 return "Bitand(%s)" % (repr(self.nodes),)
421
422class Break(Node):
423 nodes["break"] = "Break"
424 def __init__(self, ):
425 pass
426 def _getChildren(self):
427 return ()
428 def __repr__(self):
429 return "Break()"
430
431class Stmt(Node):
432 nodes["stmt"] = "Stmt"
433 def __init__(self, nodes):
434 self.nodes = nodes
435 def _getChildren(self):
436 return self.nodes,
437 def __repr__(self):
438 return "Stmt(%s)" % (repr(self.nodes),)
439
440class Assert(Node):
441 nodes["assert"] = "Assert"
442 def __init__(self, test, fail):
443 self.test = test
444 self.fail = fail
445 def _getChildren(self):
446 return self.test, self.fail
447 def __repr__(self):
448 return "Assert(%s, %s)" % (repr(self.test), repr(self.fail))
449
450class Exec(Node):
451 nodes["exec"] = "Exec"
452 def __init__(self, expr, locals, globals):
453 self.expr = expr
454 self.locals = locals
455 self.globals = globals
456 def _getChildren(self):
457 return self.expr, self.locals, self.globals
458 def __repr__(self):
459 return "Exec(%s, %s, %s)" % (repr(self.expr), repr(self.locals), repr(self.globals))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000460
461class Power(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000462 nodes["power"] = "Power"
463 def __init__(self, (left, right)):
464 self.left = left
465 self.right = right
466 def _getChildren(self):
467 return self.left, self.right
468 def __repr__(self):
469 return "Power(%s, %s)" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000470
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000471class Ellipsis(Node):
472 nodes["ellipsis"] = "Ellipsis"
473 def __init__(self, ):
474 pass
Jeremy Hylton628d2892000-10-25 18:02:59 +0000475 def _getChildren(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000476 return ()
Jeremy Hylton628d2892000-10-25 18:02:59 +0000477 def __repr__(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000478 return "Ellipsis()"
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000479
Jeremy Hylton628d2892000-10-25 18:02:59 +0000480class Return(Node):
481 nodes["return"] = "Return"
482 def __init__(self, value):
483 self.value = value
484 def _getChildren(self):
485 return self.value,
486 def __repr__(self):
487 return "Return(%s)" % (repr(self.value),)
488
Jeremy Hylton8548f9b2001-08-18 00:07:14 +0000489class Yield(Node):
490 nodes["yield"] = "Yield"
491 def __init__(self, value):
492 self.value = value
493 def _getChildren(self):
494 return self.value,
495 def __repr__(self):
496 return "Yield(%s)" % repr(self.value)
497
Jeremy Hylton628d2892000-10-25 18:02:59 +0000498class Add(Node):
499 nodes["add"] = "Add"
500 def __init__(self, (left, right)):
501 self.left = left
502 self.right = right
503 def _getChildren(self):
504 return self.left, self.right
505 def __repr__(self):
506 return "Add(%s, %s)" % (repr(self.left), repr(self.right))
507
508class Function(Node):
509 nodes["function"] = "Function"
510 def __init__(self, name, argnames, defaults, flags, doc, code):
511 self.name = name
512 self.argnames = argnames
513 self.defaults = defaults
514 self.flags = flags
515 self.doc = doc
516 self.code = code
517 self.varargs = self.kwargs = None
518 if flags & CO_VARARGS:
519 self.varargs = 1
520 if flags & CO_VARKEYWORDS:
521 self.kwargs = 1
522
523
524 def _getChildren(self):
525 return self.name, self.argnames, self.defaults, self.flags, self.doc, self.code
526 def __repr__(self):
527 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))
528
529class TryExcept(Node):
530 nodes["tryexcept"] = "TryExcept"
531 def __init__(self, body, handlers, else_):
532 self.body = body
533 self.handlers = handlers
534 self.else_ = else_
535 def _getChildren(self):
536 return self.body, self.handlers, self.else_
537 def __repr__(self):
538 return "TryExcept(%s, %s, %s)" % (repr(self.body), repr(self.handlers), repr(self.else_))
539
540class Subscript(Node):
541 nodes["subscript"] = "Subscript"
542 def __init__(self, expr, flags, subs):
543 self.expr = expr
544 self.flags = flags
545 self.subs = subs
546 def _getChildren(self):
547 return self.expr, self.flags, self.subs
548 def __repr__(self):
549 return "Subscript(%s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.subs))
550
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000551class Import(Node):
552 nodes["import"] = "Import"
553 def __init__(self, names):
554 self.names = names
Jeremy Hylton628d2892000-10-25 18:02:59 +0000555 def _getChildren(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000556 return self.names,
Jeremy Hylton628d2892000-10-25 18:02:59 +0000557 def __repr__(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000558 return "Import(%s)" % (repr(self.names),)
Jeremy Hylton628d2892000-10-25 18:02:59 +0000559
560class Print(Node):
561 nodes["print"] = "Print"
562 def __init__(self, nodes, dest):
563 self.nodes = nodes
564 self.dest = dest
565 def _getChildren(self):
566 return self.nodes, self.dest
567 def __repr__(self):
568 return "Print(%s, %s)" % (repr(self.nodes), repr(self.dest))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000569
570class UnaryAdd(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000571 nodes["unaryadd"] = "UnaryAdd"
572 def __init__(self, expr):
573 self.expr = expr
574 def _getChildren(self):
575 return self.expr,
576 def __repr__(self):
577 return "UnaryAdd(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000578
Jeremy Hylton628d2892000-10-25 18:02:59 +0000579class ListCompFor(Node):
580 nodes["listcompfor"] = "ListCompFor"
581 def __init__(self, assign, list, ifs):
582 self.assign = assign
583 self.list = list
584 self.ifs = ifs
585 def _getChildren(self):
586 return self.assign, self.list, self.ifs
587 def __repr__(self):
588 return "ListCompFor(%s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.ifs))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000589
Jeremy Hylton628d2892000-10-25 18:02:59 +0000590class Dict(Node):
591 nodes["dict"] = "Dict"
592 def __init__(self, items):
593 self.items = items
594 def _getChildren(self):
595 return self.items,
596 def __repr__(self):
597 return "Dict(%s)" % (repr(self.items),)
598
599class Getattr(Node):
600 nodes["getattr"] = "Getattr"
601 def __init__(self, expr, attrname):
602 self.expr = expr
603 self.attrname = attrname
604 def _getChildren(self):
605 return self.expr, self.attrname
606 def __repr__(self):
607 return "Getattr(%s, %s)" % (repr(self.expr), repr(self.attrname))
608
609class AssList(Node):
610 nodes["asslist"] = "AssList"
611 def __init__(self, nodes):
612 self.nodes = nodes
613 def _getChildren(self):
614 return self.nodes,
615 def __repr__(self):
616 return "AssList(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000617
618class UnarySub(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000619 nodes["unarysub"] = "UnarySub"
620 def __init__(self, expr):
621 self.expr = expr
622 def _getChildren(self):
623 return self.expr,
624 def __repr__(self):
625 return "UnarySub(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000626
Jeremy Hylton628d2892000-10-25 18:02:59 +0000627class Sliceobj(Node):
628 nodes["sliceobj"] = "Sliceobj"
629 def __init__(self, nodes):
630 self.nodes = nodes
631 def _getChildren(self):
632 return self.nodes,
633 def __repr__(self):
634 return "Sliceobj(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000635
636class Invert(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000637 nodes["invert"] = "Invert"
638 def __init__(self, expr):
639 self.expr = expr
640 def _getChildren(self):
641 return self.expr,
642 def __repr__(self):
643 return "Invert(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000644
Jeremy Hylton628d2892000-10-25 18:02:59 +0000645class Name(Node):
646 nodes["name"] = "Name"
647 def __init__(self, name):
648 self.name = name
649 def _getChildren(self):
650 return self.name,
651 def __repr__(self):
652 return "Name(%s)" % (repr(self.name),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000653
Jeremy Hylton628d2892000-10-25 18:02:59 +0000654class AssTuple(Node):
655 nodes["asstuple"] = "AssTuple"
656 def __init__(self, nodes):
657 self.nodes = nodes
658 def _getChildren(self):
659 return self.nodes,
660 def __repr__(self):
661 return "AssTuple(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000662
Jeremy Hylton628d2892000-10-25 18:02:59 +0000663class For(Node):
664 nodes["for"] = "For"
665 def __init__(self, assign, list, body, else_):
666 self.assign = assign
667 self.list = list
668 self.body = body
669 self.else_ = else_
670 def _getChildren(self):
671 return self.assign, self.list, self.body, self.else_
672 def __repr__(self):
673 return "For(%s, %s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.body), repr(self.else_))
674
675class Raise(Node):
676 nodes["raise"] = "Raise"
677 def __init__(self, expr1, expr2, expr3):
678 self.expr1 = expr1
679 self.expr2 = expr2
680 self.expr3 = expr3
681 def _getChildren(self):
682 return self.expr1, self.expr2, self.expr3
683 def __repr__(self):
684 return "Raise(%s, %s, %s)" % (repr(self.expr1), repr(self.expr2), repr(self.expr3))
685
686class From(Node):
687 nodes["from"] = "From"
688 def __init__(self, modname, names):
689 self.modname = modname
690 self.names = names
691 def _getChildren(self):
692 return self.modname, self.names
693 def __repr__(self):
694 return "From(%s, %s)" % (repr(self.modname), repr(self.names))
695
696class Slice(Node):
697 nodes["slice"] = "Slice"
698 def __init__(self, expr, flags, lower, upper):
699 self.expr = expr
700 self.flags = flags
701 self.lower = lower
702 self.upper = upper
703 def _getChildren(self):
704 return self.expr, self.flags, self.lower, self.upper
705 def __repr__(self):
706 return "Slice(%s, %s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.lower), repr(self.upper))
707
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000708klasses = globals()
709for k in nodes.keys():
Jeremy Hylton628d2892000-10-25 18:02:59 +0000710 nodes[k] = klasses[nodes[k]]