blob: dda565cf72ca2032bd2ddd5de12af0bb25c801e6 [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
19def asList(nodes):
20 l = []
21 for item in nodes:
22 if hasattr(item, "asList"):
23 l.append(item.asList())
24 else:
25 t = type(item)
26 if t is TupleType or t is ListType:
27 l.append(tuple(asList(item)))
28 else:
29 l.append(item)
30 return l
31
Jeremy Hyltonf968e852000-02-04 00:25:23 +000032nodes = {}
33
Jeremy Hyltonf968e852000-02-04 00:25:23 +000034class Node:
Jeremy Hylton628d2892000-10-25 18:02:59 +000035 lineno = None
36 def getType(self):
37 pass
38 def getChildren(self):
39 # XXX It would be better to generate flat values to begin with
40 return flatten(self._getChildren())
41 def asList(self):
42 return tuple(asList(self.getChildren()))
Jeremy Hylton7713ac22001-08-14 18:59:01 +000043 def getChildNodes(self):
44 return [n for n in self.getChildnre() if isinstance(n, Node)]
Jeremy Hyltonf968e852000-02-04 00:25:23 +000045
46class EmptyNode(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000047 def __init__(self):
48 self.lineno = None
Jeremy Hyltonf968e852000-02-04 00:25:23 +000049
50class If(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000051 nodes["if"] = "If"
52 def __init__(self, tests, else_):
53 self.tests = tests
54 self.else_ = else_
55 def _getChildren(self):
56 return self.tests, self.else_
57 def __repr__(self):
58 return "If(%s, %s)" % (repr(self.tests), repr(self.else_))
Jeremy Hyltonf968e852000-02-04 00:25:23 +000059
Jeremy Hylton9c048f92000-10-13 21:58:13 +000060class ListComp(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000061 nodes["listcomp"] = "ListComp"
62 def __init__(self, expr, quals):
63 self.expr = expr
64 self.quals = quals
65 def _getChildren(self):
66 return self.expr, self.quals
67 def __repr__(self):
68 return "ListComp(%s, %s)" % (repr(self.expr), repr(self.quals))
Jeremy Hyltonf968e852000-02-04 00:25:23 +000069
70class Bitor(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +000071 nodes["bitor"] = "Bitor"
72 def __init__(self, nodes):
73 self.nodes = nodes
74 def _getChildren(self):
75 return self.nodes,
76 def __repr__(self):
77 return "Bitor(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +000078
Jeremy Hylton628d2892000-10-25 18:02:59 +000079class Pass(Node):
80 nodes["pass"] = "Pass"
81 def __init__(self, ):
82 pass
83 def _getChildren(self):
84 return ()
85 def __repr__(self):
86 return "Pass()"
Jeremy Hyltonf968e852000-02-04 00:25:23 +000087
Jeremy Hylton628d2892000-10-25 18:02:59 +000088class Module(Node):
89 nodes["module"] = "Module"
90 def __init__(self, doc, node):
91 self.doc = doc
92 self.node = node
93 def _getChildren(self):
94 return self.doc, self.node
95 def __repr__(self):
96 return "Module(%s, %s)" % (repr(self.doc), repr(self.node))
Jeremy Hyltonf968e852000-02-04 00:25:23 +000097
Jeremy Hylton628d2892000-10-25 18:02:59 +000098class Global(Node):
99 nodes["global"] = "Global"
100 def __init__(self, names):
101 self.names = names
102 def _getChildren(self):
103 return self.names,
104 def __repr__(self):
105 return "Global(%s)" % (repr(self.names),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000106
Jeremy Hylton628d2892000-10-25 18:02:59 +0000107class CallFunc(Node):
108 nodes["callfunc"] = "CallFunc"
109 def __init__(self, node, args, star_args = None, dstar_args = None):
110 self.node = node
111 self.args = args
112 self.star_args = star_args
113 self.dstar_args = dstar_args
114 def _getChildren(self):
115 return self.node, self.args, self.star_args, self.dstar_args
116 def __repr__(self):
117 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 +0000118
Jeremy Hylton628d2892000-10-25 18:02:59 +0000119class Printnl(Node):
120 nodes["printnl"] = "Printnl"
121 def __init__(self, nodes, dest):
122 self.nodes = nodes
123 self.dest = dest
124 def _getChildren(self):
125 return self.nodes, self.dest
126 def __repr__(self):
127 return "Printnl(%s, %s)" % (repr(self.nodes), repr(self.dest))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000128
Jeremy Hylton628d2892000-10-25 18:02:59 +0000129class Tuple(Node):
130 nodes["tuple"] = "Tuple"
131 def __init__(self, nodes):
132 self.nodes = nodes
133 def _getChildren(self):
134 return self.nodes,
135 def __repr__(self):
136 return "Tuple(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000137
Jeremy Hylton628d2892000-10-25 18:02:59 +0000138class Compare(Node):
139 nodes["compare"] = "Compare"
140 def __init__(self, expr, ops):
141 self.expr = expr
142 self.ops = ops
143 def _getChildren(self):
144 return self.expr, self.ops
145 def __repr__(self):
146 return "Compare(%s, %s)" % (repr(self.expr), repr(self.ops))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000147
Jeremy Hylton628d2892000-10-25 18:02:59 +0000148class And(Node):
149 nodes["and"] = "And"
150 def __init__(self, nodes):
151 self.nodes = nodes
152 def _getChildren(self):
153 return self.nodes,
154 def __repr__(self):
155 return "And(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000156
Jeremy Hylton628d2892000-10-25 18:02:59 +0000157class Lambda(Node):
158 nodes["lambda"] = "Lambda"
159 def __init__(self, argnames, defaults, flags, code):
160 self.argnames = argnames
161 self.defaults = defaults
162 self.flags = flags
163 self.code = code
164 self.varargs = self.kwargs = None
165 if flags & CO_VARARGS:
166 self.varargs = 1
167 if flags & CO_VARKEYWORDS:
168 self.kwargs = 1
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000169
Jeremy Hylton628d2892000-10-25 18:02:59 +0000170 def _getChildren(self):
171 return self.argnames, self.defaults, self.flags, self.code
172 def __repr__(self):
173 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 +0000174
Jeremy Hylton628d2892000-10-25 18:02:59 +0000175class Assign(Node):
176 nodes["assign"] = "Assign"
177 def __init__(self, nodes, expr):
178 self.nodes = nodes
179 self.expr = expr
180 def _getChildren(self):
181 return self.nodes, self.expr
182 def __repr__(self):
183 return "Assign(%s, %s)" % (repr(self.nodes), repr(self.expr))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000184
185class Sub(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000186 nodes["sub"] = "Sub"
187 def __init__(self, (left, right)):
188 self.left = left
189 self.right = right
190 def _getChildren(self):
191 return self.left, self.right
192 def __repr__(self):
193 return "Sub(%s, %s)" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000194
Jeremy Hylton628d2892000-10-25 18:02:59 +0000195class ListCompIf(Node):
196 nodes["listcompif"] = "ListCompIf"
197 def __init__(self, test):
198 self.test = test
199 def _getChildren(self):
200 return self.test,
201 def __repr__(self):
202 return "ListCompIf(%s)" % (repr(self.test),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000203
204class Div(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000205 nodes["div"] = "Div"
206 def __init__(self, (left, right)):
207 self.left = left
208 self.right = right
209 def _getChildren(self):
210 return self.left, self.right
211 def __repr__(self):
212 return "Div(%s, %s)" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000213
Jeremy Hylton628d2892000-10-25 18:02:59 +0000214class Discard(Node):
215 nodes["discard"] = "Discard"
216 def __init__(self, expr):
217 self.expr = expr
218 def _getChildren(self):
219 return self.expr,
220 def __repr__(self):
221 return "Discard(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000222
Jeremy Hylton628d2892000-10-25 18:02:59 +0000223class Backquote(Node):
224 nodes["backquote"] = "Backquote"
225 def __init__(self, expr):
226 self.expr = expr
227 def _getChildren(self):
228 return self.expr,
229 def __repr__(self):
230 return "Backquote(%s)" % (repr(self.expr),)
231
232class RightShift(Node):
233 nodes["rightshift"] = "RightShift"
234 def __init__(self, (left, right)):
235 self.left = left
236 self.right = right
237 def _getChildren(self):
238 return self.left, self.right
239 def __repr__(self):
240 return "RightShift(%s, %s)" % (repr(self.left), repr(self.right))
241
242class Continue(Node):
243 nodes["continue"] = "Continue"
244 def __init__(self, ):
245 pass
246 def _getChildren(self):
247 return ()
248 def __repr__(self):
249 return "Continue()"
250
251class While(Node):
252 nodes["while"] = "While"
253 def __init__(self, test, body, else_):
254 self.test = test
255 self.body = body
256 self.else_ = else_
257 def _getChildren(self):
258 return self.test, self.body, self.else_
259 def __repr__(self):
260 return "While(%s, %s, %s)" % (repr(self.test), repr(self.body), repr(self.else_))
261
262class AssName(Node):
263 nodes["assname"] = "AssName"
264 def __init__(self, name, flags):
265 self.name = name
266 self.flags = flags
267 def _getChildren(self):
268 return self.name, self.flags
269 def __repr__(self):
270 return "AssName(%s, %s)" % (repr(self.name), repr(self.flags))
271
272class LeftShift(Node):
273 nodes["leftshift"] = "LeftShift"
274 def __init__(self, (left, right)):
275 self.left = left
276 self.right = right
277 def _getChildren(self):
278 return self.left, self.right
279 def __repr__(self):
280 return "LeftShift(%s, %s)" % (repr(self.left), repr(self.right))
281
282class Mul(Node):
283 nodes["mul"] = "Mul"
284 def __init__(self, (left, right)):
285 self.left = left
286 self.right = right
287 def _getChildren(self):
288 return self.left, self.right
289 def __repr__(self):
290 return "Mul(%s, %s)" % (repr(self.left), repr(self.right))
291
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000292class Yield(Node):
293 nodes["yield"] = "Yield"
294 def __init__(self, value):
295 self.value = value
296 def _getChildren(self):
297 return self.value,
298 def __repr__(self):
299 return "Yield(%s)" % (repr(self.value),)
300
Jeremy Hylton628d2892000-10-25 18:02:59 +0000301class List(Node):
302 nodes["list"] = "List"
303 def __init__(self, nodes):
304 self.nodes = nodes
305 def _getChildren(self):
306 return self.nodes,
307 def __repr__(self):
308 return "List(%s)" % (repr(self.nodes),)
309
310class AugAssign(Node):
311 nodes["augassign"] = "AugAssign"
312 def __init__(self, node, op, expr):
313 self.node = node
314 self.op = op
315 self.expr = expr
316 def _getChildren(self):
317 return self.node, self.op, self.expr
318 def __repr__(self):
319 return "AugAssign(%s, %s, %s)" % (repr(self.node), repr(self.op), repr(self.expr))
320
321class Or(Node):
322 nodes["or"] = "Or"
323 def __init__(self, nodes):
324 self.nodes = nodes
325 def _getChildren(self):
326 return self.nodes,
327 def __repr__(self):
328 return "Or(%s)" % (repr(self.nodes),)
329
330class Keyword(Node):
331 nodes["keyword"] = "Keyword"
332 def __init__(self, name, expr):
333 self.name = name
334 self.expr = expr
335 def _getChildren(self):
336 return self.name, self.expr
337 def __repr__(self):
338 return "Keyword(%s, %s)" % (repr(self.name), repr(self.expr))
339
340class AssAttr(Node):
341 nodes["assattr"] = "AssAttr"
342 def __init__(self, expr, attrname, flags):
343 self.expr = expr
344 self.attrname = attrname
345 self.flags = flags
346 def _getChildren(self):
347 return self.expr, self.attrname, self.flags
348 def __repr__(self):
349 return "AssAttr(%s, %s, %s)" % (repr(self.expr), repr(self.attrname), repr(self.flags))
350
351class Const(Node):
352 nodes["const"] = "Const"
353 def __init__(self, value):
354 self.value = value
355 def _getChildren(self):
356 return self.value,
357 def __repr__(self):
358 return "Const(%s)" % (repr(self.value),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000359
360class Mod(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000361 nodes["mod"] = "Mod"
362 def __init__(self, (left, right)):
363 self.left = left
364 self.right = right
365 def _getChildren(self):
366 return self.left, self.right
367 def __repr__(self):
368 return "Mod(%s, %s)" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000369
Jeremy Hylton628d2892000-10-25 18:02:59 +0000370class Class(Node):
371 nodes["class"] = "Class"
372 def __init__(self, name, bases, doc, code):
373 self.name = name
374 self.bases = bases
375 self.doc = doc
376 self.code = code
377 def _getChildren(self):
378 return self.name, self.bases, self.doc, self.code
379 def __repr__(self):
380 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 +0000381
Jeremy Hylton628d2892000-10-25 18:02:59 +0000382class Not(Node):
383 nodes["not"] = "Not"
384 def __init__(self, expr):
385 self.expr = expr
386 def _getChildren(self):
387 return self.expr,
388 def __repr__(self):
389 return "Not(%s)" % (repr(self.expr),)
390
391class Bitxor(Node):
392 nodes["bitxor"] = "Bitxor"
393 def __init__(self, nodes):
394 self.nodes = nodes
395 def _getChildren(self):
396 return self.nodes,
397 def __repr__(self):
398 return "Bitxor(%s)" % (repr(self.nodes),)
399
400class TryFinally(Node):
401 nodes["tryfinally"] = "TryFinally"
402 def __init__(self, body, final):
403 self.body = body
404 self.final = final
405 def _getChildren(self):
406 return self.body, self.final
407 def __repr__(self):
408 return "TryFinally(%s, %s)" % (repr(self.body), repr(self.final))
409
410class Bitand(Node):
411 nodes["bitand"] = "Bitand"
412 def __init__(self, nodes):
413 self.nodes = nodes
414 def _getChildren(self):
415 return self.nodes,
416 def __repr__(self):
417 return "Bitand(%s)" % (repr(self.nodes),)
418
419class Break(Node):
420 nodes["break"] = "Break"
421 def __init__(self, ):
422 pass
423 def _getChildren(self):
424 return ()
425 def __repr__(self):
426 return "Break()"
427
428class Stmt(Node):
429 nodes["stmt"] = "Stmt"
430 def __init__(self, nodes):
431 self.nodes = nodes
432 def _getChildren(self):
433 return self.nodes,
434 def __repr__(self):
435 return "Stmt(%s)" % (repr(self.nodes),)
436
437class Assert(Node):
438 nodes["assert"] = "Assert"
439 def __init__(self, test, fail):
440 self.test = test
441 self.fail = fail
442 def _getChildren(self):
443 return self.test, self.fail
444 def __repr__(self):
445 return "Assert(%s, %s)" % (repr(self.test), repr(self.fail))
446
447class Exec(Node):
448 nodes["exec"] = "Exec"
449 def __init__(self, expr, locals, globals):
450 self.expr = expr
451 self.locals = locals
452 self.globals = globals
453 def _getChildren(self):
454 return self.expr, self.locals, self.globals
455 def __repr__(self):
456 return "Exec(%s, %s, %s)" % (repr(self.expr), repr(self.locals), repr(self.globals))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000457
458class Power(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000459 nodes["power"] = "Power"
460 def __init__(self, (left, right)):
461 self.left = left
462 self.right = right
463 def _getChildren(self):
464 return self.left, self.right
465 def __repr__(self):
466 return "Power(%s, %s)" % (repr(self.left), repr(self.right))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000467
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000468class Ellipsis(Node):
469 nodes["ellipsis"] = "Ellipsis"
470 def __init__(self, ):
471 pass
Jeremy Hylton628d2892000-10-25 18:02:59 +0000472 def _getChildren(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000473 return ()
Jeremy Hylton628d2892000-10-25 18:02:59 +0000474 def __repr__(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000475 return "Ellipsis()"
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000476
Jeremy Hylton628d2892000-10-25 18:02:59 +0000477class Return(Node):
478 nodes["return"] = "Return"
479 def __init__(self, value):
480 self.value = value
481 def _getChildren(self):
482 return self.value,
483 def __repr__(self):
484 return "Return(%s)" % (repr(self.value),)
485
486class Add(Node):
487 nodes["add"] = "Add"
488 def __init__(self, (left, right)):
489 self.left = left
490 self.right = right
491 def _getChildren(self):
492 return self.left, self.right
493 def __repr__(self):
494 return "Add(%s, %s)" % (repr(self.left), repr(self.right))
495
496class Function(Node):
497 nodes["function"] = "Function"
498 def __init__(self, name, argnames, defaults, flags, doc, code):
499 self.name = name
500 self.argnames = argnames
501 self.defaults = defaults
502 self.flags = flags
503 self.doc = doc
504 self.code = code
505 self.varargs = self.kwargs = None
506 if flags & CO_VARARGS:
507 self.varargs = 1
508 if flags & CO_VARKEYWORDS:
509 self.kwargs = 1
510
511
512 def _getChildren(self):
513 return self.name, self.argnames, self.defaults, self.flags, self.doc, self.code
514 def __repr__(self):
515 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))
516
517class TryExcept(Node):
518 nodes["tryexcept"] = "TryExcept"
519 def __init__(self, body, handlers, else_):
520 self.body = body
521 self.handlers = handlers
522 self.else_ = else_
523 def _getChildren(self):
524 return self.body, self.handlers, self.else_
525 def __repr__(self):
526 return "TryExcept(%s, %s, %s)" % (repr(self.body), repr(self.handlers), repr(self.else_))
527
528class Subscript(Node):
529 nodes["subscript"] = "Subscript"
530 def __init__(self, expr, flags, subs):
531 self.expr = expr
532 self.flags = flags
533 self.subs = subs
534 def _getChildren(self):
535 return self.expr, self.flags, self.subs
536 def __repr__(self):
537 return "Subscript(%s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.subs))
538
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000539class Import(Node):
540 nodes["import"] = "Import"
541 def __init__(self, names):
542 self.names = names
Jeremy Hylton628d2892000-10-25 18:02:59 +0000543 def _getChildren(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000544 return self.names,
Jeremy Hylton628d2892000-10-25 18:02:59 +0000545 def __repr__(self):
Jeremy Hylton7713ac22001-08-14 18:59:01 +0000546 return "Import(%s)" % (repr(self.names),)
Jeremy Hylton628d2892000-10-25 18:02:59 +0000547
548class Print(Node):
549 nodes["print"] = "Print"
550 def __init__(self, nodes, dest):
551 self.nodes = nodes
552 self.dest = dest
553 def _getChildren(self):
554 return self.nodes, self.dest
555 def __repr__(self):
556 return "Print(%s, %s)" % (repr(self.nodes), repr(self.dest))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000557
558class UnaryAdd(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000559 nodes["unaryadd"] = "UnaryAdd"
560 def __init__(self, expr):
561 self.expr = expr
562 def _getChildren(self):
563 return self.expr,
564 def __repr__(self):
565 return "UnaryAdd(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000566
Jeremy Hylton628d2892000-10-25 18:02:59 +0000567class ListCompFor(Node):
568 nodes["listcompfor"] = "ListCompFor"
569 def __init__(self, assign, list, ifs):
570 self.assign = assign
571 self.list = list
572 self.ifs = ifs
573 def _getChildren(self):
574 return self.assign, self.list, self.ifs
575 def __repr__(self):
576 return "ListCompFor(%s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.ifs))
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000577
Jeremy Hylton628d2892000-10-25 18:02:59 +0000578class Dict(Node):
579 nodes["dict"] = "Dict"
580 def __init__(self, items):
581 self.items = items
582 def _getChildren(self):
583 return self.items,
584 def __repr__(self):
585 return "Dict(%s)" % (repr(self.items),)
586
587class Getattr(Node):
588 nodes["getattr"] = "Getattr"
589 def __init__(self, expr, attrname):
590 self.expr = expr
591 self.attrname = attrname
592 def _getChildren(self):
593 return self.expr, self.attrname
594 def __repr__(self):
595 return "Getattr(%s, %s)" % (repr(self.expr), repr(self.attrname))
596
597class AssList(Node):
598 nodes["asslist"] = "AssList"
599 def __init__(self, nodes):
600 self.nodes = nodes
601 def _getChildren(self):
602 return self.nodes,
603 def __repr__(self):
604 return "AssList(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000605
606class UnarySub(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000607 nodes["unarysub"] = "UnarySub"
608 def __init__(self, expr):
609 self.expr = expr
610 def _getChildren(self):
611 return self.expr,
612 def __repr__(self):
613 return "UnarySub(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000614
Jeremy Hylton628d2892000-10-25 18:02:59 +0000615class Sliceobj(Node):
616 nodes["sliceobj"] = "Sliceobj"
617 def __init__(self, nodes):
618 self.nodes = nodes
619 def _getChildren(self):
620 return self.nodes,
621 def __repr__(self):
622 return "Sliceobj(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000623
624class Invert(Node):
Jeremy Hylton628d2892000-10-25 18:02:59 +0000625 nodes["invert"] = "Invert"
626 def __init__(self, expr):
627 self.expr = expr
628 def _getChildren(self):
629 return self.expr,
630 def __repr__(self):
631 return "Invert(%s)" % (repr(self.expr),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000632
Jeremy Hylton628d2892000-10-25 18:02:59 +0000633class Name(Node):
634 nodes["name"] = "Name"
635 def __init__(self, name):
636 self.name = name
637 def _getChildren(self):
638 return self.name,
639 def __repr__(self):
640 return "Name(%s)" % (repr(self.name),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000641
Jeremy Hylton628d2892000-10-25 18:02:59 +0000642class AssTuple(Node):
643 nodes["asstuple"] = "AssTuple"
644 def __init__(self, nodes):
645 self.nodes = nodes
646 def _getChildren(self):
647 return self.nodes,
648 def __repr__(self):
649 return "AssTuple(%s)" % (repr(self.nodes),)
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000650
Jeremy Hylton628d2892000-10-25 18:02:59 +0000651class For(Node):
652 nodes["for"] = "For"
653 def __init__(self, assign, list, body, else_):
654 self.assign = assign
655 self.list = list
656 self.body = body
657 self.else_ = else_
658 def _getChildren(self):
659 return self.assign, self.list, self.body, self.else_
660 def __repr__(self):
661 return "For(%s, %s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.body), repr(self.else_))
662
663class Raise(Node):
664 nodes["raise"] = "Raise"
665 def __init__(self, expr1, expr2, expr3):
666 self.expr1 = expr1
667 self.expr2 = expr2
668 self.expr3 = expr3
669 def _getChildren(self):
670 return self.expr1, self.expr2, self.expr3
671 def __repr__(self):
672 return "Raise(%s, %s, %s)" % (repr(self.expr1), repr(self.expr2), repr(self.expr3))
673
674class From(Node):
675 nodes["from"] = "From"
676 def __init__(self, modname, names):
677 self.modname = modname
678 self.names = names
679 def _getChildren(self):
680 return self.modname, self.names
681 def __repr__(self):
682 return "From(%s, %s)" % (repr(self.modname), repr(self.names))
683
684class Slice(Node):
685 nodes["slice"] = "Slice"
686 def __init__(self, expr, flags, lower, upper):
687 self.expr = expr
688 self.flags = flags
689 self.lower = lower
690 self.upper = upper
691 def _getChildren(self):
692 return self.expr, self.flags, self.lower, self.upper
693 def __repr__(self):
694 return "Slice(%s, %s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.lower), repr(self.upper))
695
Jeremy Hyltonf968e852000-02-04 00:25:23 +0000696klasses = globals()
697for k in nodes.keys():
Jeremy Hylton628d2892000-10-25 18:02:59 +0000698 nodes[k] = klasses[nodes[k]]