]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Lib/compiler/ast.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Lib / compiler / ast.py
CommitLineData
4710c53d 1"""Python abstract syntax node definitions\r
2\r
3This file is automatically generated by Tools/compiler/astgen.py\r
4"""\r
5from compiler.consts import CO_VARARGS, CO_VARKEYWORDS\r
6\r
7def flatten(seq):\r
8 l = []\r
9 for elt in seq:\r
10 t = type(elt)\r
11 if t is tuple or t is list:\r
12 for elt2 in flatten(elt):\r
13 l.append(elt2)\r
14 else:\r
15 l.append(elt)\r
16 return l\r
17\r
18def flatten_nodes(seq):\r
19 return [n for n in flatten(seq) if isinstance(n, Node)]\r
20\r
21nodes = {}\r
22\r
23class Node:\r
24 """Abstract base class for ast nodes."""\r
25 def getChildren(self):\r
26 pass # implemented by subclasses\r
27 def __iter__(self):\r
28 for n in self.getChildren():\r
29 yield n\r
30 def asList(self): # for backwards compatibility\r
31 return self.getChildren()\r
32 def getChildNodes(self):\r
33 pass # implemented by subclasses\r
34\r
35class EmptyNode(Node):\r
36 pass\r
37\r
38class Expression(Node):\r
39 # Expression is an artificial node class to support "eval"\r
40 nodes["expression"] = "Expression"\r
41 def __init__(self, node):\r
42 self.node = node\r
43\r
44 def getChildren(self):\r
45 return self.node,\r
46\r
47 def getChildNodes(self):\r
48 return self.node,\r
49\r
50 def __repr__(self):\r
51 return "Expression(%s)" % (repr(self.node))\r
52\r
53class Add(Node):\r
54 def __init__(self, leftright, lineno=None):\r
55 self.left = leftright[0]\r
56 self.right = leftright[1]\r
57 self.lineno = lineno\r
58\r
59 def getChildren(self):\r
60 return self.left, self.right\r
61\r
62 def getChildNodes(self):\r
63 return self.left, self.right\r
64\r
65 def __repr__(self):\r
66 return "Add((%s, %s))" % (repr(self.left), repr(self.right))\r
67\r
68class And(Node):\r
69 def __init__(self, nodes, lineno=None):\r
70 self.nodes = nodes\r
71 self.lineno = lineno\r
72\r
73 def getChildren(self):\r
74 return tuple(flatten(self.nodes))\r
75\r
76 def getChildNodes(self):\r
77 nodelist = []\r
78 nodelist.extend(flatten_nodes(self.nodes))\r
79 return tuple(nodelist)\r
80\r
81 def __repr__(self):\r
82 return "And(%s)" % (repr(self.nodes),)\r
83\r
84class AssAttr(Node):\r
85 def __init__(self, expr, attrname, flags, lineno=None):\r
86 self.expr = expr\r
87 self.attrname = attrname\r
88 self.flags = flags\r
89 self.lineno = lineno\r
90\r
91 def getChildren(self):\r
92 return self.expr, self.attrname, self.flags\r
93\r
94 def getChildNodes(self):\r
95 return self.expr,\r
96\r
97 def __repr__(self):\r
98 return "AssAttr(%s, %s, %s)" % (repr(self.expr), repr(self.attrname), repr(self.flags))\r
99\r
100class AssList(Node):\r
101 def __init__(self, nodes, lineno=None):\r
102 self.nodes = nodes\r
103 self.lineno = lineno\r
104\r
105 def getChildren(self):\r
106 return tuple(flatten(self.nodes))\r
107\r
108 def getChildNodes(self):\r
109 nodelist = []\r
110 nodelist.extend(flatten_nodes(self.nodes))\r
111 return tuple(nodelist)\r
112\r
113 def __repr__(self):\r
114 return "AssList(%s)" % (repr(self.nodes),)\r
115\r
116class AssName(Node):\r
117 def __init__(self, name, flags, lineno=None):\r
118 self.name = name\r
119 self.flags = flags\r
120 self.lineno = lineno\r
121\r
122 def getChildren(self):\r
123 return self.name, self.flags\r
124\r
125 def getChildNodes(self):\r
126 return ()\r
127\r
128 def __repr__(self):\r
129 return "AssName(%s, %s)" % (repr(self.name), repr(self.flags))\r
130\r
131class AssTuple(Node):\r
132 def __init__(self, nodes, lineno=None):\r
133 self.nodes = nodes\r
134 self.lineno = lineno\r
135\r
136 def getChildren(self):\r
137 return tuple(flatten(self.nodes))\r
138\r
139 def getChildNodes(self):\r
140 nodelist = []\r
141 nodelist.extend(flatten_nodes(self.nodes))\r
142 return tuple(nodelist)\r
143\r
144 def __repr__(self):\r
145 return "AssTuple(%s)" % (repr(self.nodes),)\r
146\r
147class Assert(Node):\r
148 def __init__(self, test, fail, lineno=None):\r
149 self.test = test\r
150 self.fail = fail\r
151 self.lineno = lineno\r
152\r
153 def getChildren(self):\r
154 children = []\r
155 children.append(self.test)\r
156 children.append(self.fail)\r
157 return tuple(children)\r
158\r
159 def getChildNodes(self):\r
160 nodelist = []\r
161 nodelist.append(self.test)\r
162 if self.fail is not None:\r
163 nodelist.append(self.fail)\r
164 return tuple(nodelist)\r
165\r
166 def __repr__(self):\r
167 return "Assert(%s, %s)" % (repr(self.test), repr(self.fail))\r
168\r
169class Assign(Node):\r
170 def __init__(self, nodes, expr, lineno=None):\r
171 self.nodes = nodes\r
172 self.expr = expr\r
173 self.lineno = lineno\r
174\r
175 def getChildren(self):\r
176 children = []\r
177 children.extend(flatten(self.nodes))\r
178 children.append(self.expr)\r
179 return tuple(children)\r
180\r
181 def getChildNodes(self):\r
182 nodelist = []\r
183 nodelist.extend(flatten_nodes(self.nodes))\r
184 nodelist.append(self.expr)\r
185 return tuple(nodelist)\r
186\r
187 def __repr__(self):\r
188 return "Assign(%s, %s)" % (repr(self.nodes), repr(self.expr))\r
189\r
190class AugAssign(Node):\r
191 def __init__(self, node, op, expr, lineno=None):\r
192 self.node = node\r
193 self.op = op\r
194 self.expr = expr\r
195 self.lineno = lineno\r
196\r
197 def getChildren(self):\r
198 return self.node, self.op, self.expr\r
199\r
200 def getChildNodes(self):\r
201 return self.node, self.expr\r
202\r
203 def __repr__(self):\r
204 return "AugAssign(%s, %s, %s)" % (repr(self.node), repr(self.op), repr(self.expr))\r
205\r
206class Backquote(Node):\r
207 def __init__(self, expr, lineno=None):\r
208 self.expr = expr\r
209 self.lineno = lineno\r
210\r
211 def getChildren(self):\r
212 return self.expr,\r
213\r
214 def getChildNodes(self):\r
215 return self.expr,\r
216\r
217 def __repr__(self):\r
218 return "Backquote(%s)" % (repr(self.expr),)\r
219\r
220class Bitand(Node):\r
221 def __init__(self, nodes, lineno=None):\r
222 self.nodes = nodes\r
223 self.lineno = lineno\r
224\r
225 def getChildren(self):\r
226 return tuple(flatten(self.nodes))\r
227\r
228 def getChildNodes(self):\r
229 nodelist = []\r
230 nodelist.extend(flatten_nodes(self.nodes))\r
231 return tuple(nodelist)\r
232\r
233 def __repr__(self):\r
234 return "Bitand(%s)" % (repr(self.nodes),)\r
235\r
236class Bitor(Node):\r
237 def __init__(self, nodes, lineno=None):\r
238 self.nodes = nodes\r
239 self.lineno = lineno\r
240\r
241 def getChildren(self):\r
242 return tuple(flatten(self.nodes))\r
243\r
244 def getChildNodes(self):\r
245 nodelist = []\r
246 nodelist.extend(flatten_nodes(self.nodes))\r
247 return tuple(nodelist)\r
248\r
249 def __repr__(self):\r
250 return "Bitor(%s)" % (repr(self.nodes),)\r
251\r
252class Bitxor(Node):\r
253 def __init__(self, nodes, lineno=None):\r
254 self.nodes = nodes\r
255 self.lineno = lineno\r
256\r
257 def getChildren(self):\r
258 return tuple(flatten(self.nodes))\r
259\r
260 def getChildNodes(self):\r
261 nodelist = []\r
262 nodelist.extend(flatten_nodes(self.nodes))\r
263 return tuple(nodelist)\r
264\r
265 def __repr__(self):\r
266 return "Bitxor(%s)" % (repr(self.nodes),)\r
267\r
268class Break(Node):\r
269 def __init__(self, lineno=None):\r
270 self.lineno = lineno\r
271\r
272 def getChildren(self):\r
273 return ()\r
274\r
275 def getChildNodes(self):\r
276 return ()\r
277\r
278 def __repr__(self):\r
279 return "Break()"\r
280\r
281class CallFunc(Node):\r
282 def __init__(self, node, args, star_args = None, dstar_args = None, lineno=None):\r
283 self.node = node\r
284 self.args = args\r
285 self.star_args = star_args\r
286 self.dstar_args = dstar_args\r
287 self.lineno = lineno\r
288\r
289 def getChildren(self):\r
290 children = []\r
291 children.append(self.node)\r
292 children.extend(flatten(self.args))\r
293 children.append(self.star_args)\r
294 children.append(self.dstar_args)\r
295 return tuple(children)\r
296\r
297 def getChildNodes(self):\r
298 nodelist = []\r
299 nodelist.append(self.node)\r
300 nodelist.extend(flatten_nodes(self.args))\r
301 if self.star_args is not None:\r
302 nodelist.append(self.star_args)\r
303 if self.dstar_args is not None:\r
304 nodelist.append(self.dstar_args)\r
305 return tuple(nodelist)\r
306\r
307 def __repr__(self):\r
308 return "CallFunc(%s, %s, %s, %s)" % (repr(self.node), repr(self.args), repr(self.star_args), repr(self.dstar_args))\r
309\r
310class Class(Node):\r
311 def __init__(self, name, bases, doc, code, decorators = None, lineno=None):\r
312 self.name = name\r
313 self.bases = bases\r
314 self.doc = doc\r
315 self.code = code\r
316 self.decorators = decorators\r
317 self.lineno = lineno\r
318\r
319 def getChildren(self):\r
320 children = []\r
321 children.append(self.name)\r
322 children.extend(flatten(self.bases))\r
323 children.append(self.doc)\r
324 children.append(self.code)\r
325 children.append(self.decorators)\r
326 return tuple(children)\r
327\r
328 def getChildNodes(self):\r
329 nodelist = []\r
330 nodelist.extend(flatten_nodes(self.bases))\r
331 nodelist.append(self.code)\r
332 if self.decorators is not None:\r
333 nodelist.append(self.decorators)\r
334 return tuple(nodelist)\r
335\r
336 def __repr__(self):\r
337 return "Class(%s, %s, %s, %s, %s)" % (repr(self.name), repr(self.bases), repr(self.doc), repr(self.code), repr(self.decorators))\r
338\r
339class Compare(Node):\r
340 def __init__(self, expr, ops, lineno=None):\r
341 self.expr = expr\r
342 self.ops = ops\r
343 self.lineno = lineno\r
344\r
345 def getChildren(self):\r
346 children = []\r
347 children.append(self.expr)\r
348 children.extend(flatten(self.ops))\r
349 return tuple(children)\r
350\r
351 def getChildNodes(self):\r
352 nodelist = []\r
353 nodelist.append(self.expr)\r
354 nodelist.extend(flatten_nodes(self.ops))\r
355 return tuple(nodelist)\r
356\r
357 def __repr__(self):\r
358 return "Compare(%s, %s)" % (repr(self.expr), repr(self.ops))\r
359\r
360class Const(Node):\r
361 def __init__(self, value, lineno=None):\r
362 self.value = value\r
363 self.lineno = lineno\r
364\r
365 def getChildren(self):\r
366 return self.value,\r
367\r
368 def getChildNodes(self):\r
369 return ()\r
370\r
371 def __repr__(self):\r
372 return "Const(%s)" % (repr(self.value),)\r
373\r
374class Continue(Node):\r
375 def __init__(self, lineno=None):\r
376 self.lineno = lineno\r
377\r
378 def getChildren(self):\r
379 return ()\r
380\r
381 def getChildNodes(self):\r
382 return ()\r
383\r
384 def __repr__(self):\r
385 return "Continue()"\r
386\r
387class Decorators(Node):\r
388 def __init__(self, nodes, lineno=None):\r
389 self.nodes = nodes\r
390 self.lineno = lineno\r
391\r
392 def getChildren(self):\r
393 return tuple(flatten(self.nodes))\r
394\r
395 def getChildNodes(self):\r
396 nodelist = []\r
397 nodelist.extend(flatten_nodes(self.nodes))\r
398 return tuple(nodelist)\r
399\r
400 def __repr__(self):\r
401 return "Decorators(%s)" % (repr(self.nodes),)\r
402\r
403class Dict(Node):\r
404 def __init__(self, items, lineno=None):\r
405 self.items = items\r
406 self.lineno = lineno\r
407\r
408 def getChildren(self):\r
409 return tuple(flatten(self.items))\r
410\r
411 def getChildNodes(self):\r
412 nodelist = []\r
413 nodelist.extend(flatten_nodes(self.items))\r
414 return tuple(nodelist)\r
415\r
416 def __repr__(self):\r
417 return "Dict(%s)" % (repr(self.items),)\r
418\r
419class Discard(Node):\r
420 def __init__(self, expr, lineno=None):\r
421 self.expr = expr\r
422 self.lineno = lineno\r
423\r
424 def getChildren(self):\r
425 return self.expr,\r
426\r
427 def getChildNodes(self):\r
428 return self.expr,\r
429\r
430 def __repr__(self):\r
431 return "Discard(%s)" % (repr(self.expr),)\r
432\r
433class Div(Node):\r
434 def __init__(self, leftright, lineno=None):\r
435 self.left = leftright[0]\r
436 self.right = leftright[1]\r
437 self.lineno = lineno\r
438\r
439 def getChildren(self):\r
440 return self.left, self.right\r
441\r
442 def getChildNodes(self):\r
443 return self.left, self.right\r
444\r
445 def __repr__(self):\r
446 return "Div((%s, %s))" % (repr(self.left), repr(self.right))\r
447\r
448class Ellipsis(Node):\r
449 def __init__(self, lineno=None):\r
450 self.lineno = lineno\r
451\r
452 def getChildren(self):\r
453 return ()\r
454\r
455 def getChildNodes(self):\r
456 return ()\r
457\r
458 def __repr__(self):\r
459 return "Ellipsis()"\r
460\r
461class Exec(Node):\r
462 def __init__(self, expr, locals, globals, lineno=None):\r
463 self.expr = expr\r
464 self.locals = locals\r
465 self.globals = globals\r
466 self.lineno = lineno\r
467\r
468 def getChildren(self):\r
469 children = []\r
470 children.append(self.expr)\r
471 children.append(self.locals)\r
472 children.append(self.globals)\r
473 return tuple(children)\r
474\r
475 def getChildNodes(self):\r
476 nodelist = []\r
477 nodelist.append(self.expr)\r
478 if self.locals is not None:\r
479 nodelist.append(self.locals)\r
480 if self.globals is not None:\r
481 nodelist.append(self.globals)\r
482 return tuple(nodelist)\r
483\r
484 def __repr__(self):\r
485 return "Exec(%s, %s, %s)" % (repr(self.expr), repr(self.locals), repr(self.globals))\r
486\r
487class FloorDiv(Node):\r
488 def __init__(self, leftright, lineno=None):\r
489 self.left = leftright[0]\r
490 self.right = leftright[1]\r
491 self.lineno = lineno\r
492\r
493 def getChildren(self):\r
494 return self.left, self.right\r
495\r
496 def getChildNodes(self):\r
497 return self.left, self.right\r
498\r
499 def __repr__(self):\r
500 return "FloorDiv((%s, %s))" % (repr(self.left), repr(self.right))\r
501\r
502class For(Node):\r
503 def __init__(self, assign, list, body, else_, lineno=None):\r
504 self.assign = assign\r
505 self.list = list\r
506 self.body = body\r
507 self.else_ = else_\r
508 self.lineno = lineno\r
509\r
510 def getChildren(self):\r
511 children = []\r
512 children.append(self.assign)\r
513 children.append(self.list)\r
514 children.append(self.body)\r
515 children.append(self.else_)\r
516 return tuple(children)\r
517\r
518 def getChildNodes(self):\r
519 nodelist = []\r
520 nodelist.append(self.assign)\r
521 nodelist.append(self.list)\r
522 nodelist.append(self.body)\r
523 if self.else_ is not None:\r
524 nodelist.append(self.else_)\r
525 return tuple(nodelist)\r
526\r
527 def __repr__(self):\r
528 return "For(%s, %s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.body), repr(self.else_))\r
529\r
530class From(Node):\r
531 def __init__(self, modname, names, level, lineno=None):\r
532 self.modname = modname\r
533 self.names = names\r
534 self.level = level\r
535 self.lineno = lineno\r
536\r
537 def getChildren(self):\r
538 return self.modname, self.names, self.level\r
539\r
540 def getChildNodes(self):\r
541 return ()\r
542\r
543 def __repr__(self):\r
544 return "From(%s, %s, %s)" % (repr(self.modname), repr(self.names), repr(self.level))\r
545\r
546class Function(Node):\r
547 def __init__(self, decorators, name, argnames, defaults, flags, doc, code, lineno=None):\r
548 self.decorators = decorators\r
549 self.name = name\r
550 self.argnames = argnames\r
551 self.defaults = defaults\r
552 self.flags = flags\r
553 self.doc = doc\r
554 self.code = code\r
555 self.lineno = lineno\r
556 self.varargs = self.kwargs = None\r
557 if flags & CO_VARARGS:\r
558 self.varargs = 1\r
559 if flags & CO_VARKEYWORDS:\r
560 self.kwargs = 1\r
561\r
562\r
563 def getChildren(self):\r
564 children = []\r
565 children.append(self.decorators)\r
566 children.append(self.name)\r
567 children.append(self.argnames)\r
568 children.extend(flatten(self.defaults))\r
569 children.append(self.flags)\r
570 children.append(self.doc)\r
571 children.append(self.code)\r
572 return tuple(children)\r
573\r
574 def getChildNodes(self):\r
575 nodelist = []\r
576 if self.decorators is not None:\r
577 nodelist.append(self.decorators)\r
578 nodelist.extend(flatten_nodes(self.defaults))\r
579 nodelist.append(self.code)\r
580 return tuple(nodelist)\r
581\r
582 def __repr__(self):\r
583 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))\r
584\r
585class GenExpr(Node):\r
586 def __init__(self, code, lineno=None):\r
587 self.code = code\r
588 self.lineno = lineno\r
589 self.argnames = ['.0']\r
590 self.varargs = self.kwargs = None\r
591\r
592\r
593 def getChildren(self):\r
594 return self.code,\r
595\r
596 def getChildNodes(self):\r
597 return self.code,\r
598\r
599 def __repr__(self):\r
600 return "GenExpr(%s)" % (repr(self.code),)\r
601\r
602class GenExprFor(Node):\r
603 def __init__(self, assign, iter, ifs, lineno=None):\r
604 self.assign = assign\r
605 self.iter = iter\r
606 self.ifs = ifs\r
607 self.lineno = lineno\r
608 self.is_outmost = False\r
609\r
610 def getChildren(self):\r
611 children = []\r
612 children.append(self.assign)\r
613 children.append(self.iter)\r
614 children.extend(flatten(self.ifs))\r
615 return tuple(children)\r
616\r
617 def getChildNodes(self):\r
618 nodelist = []\r
619 nodelist.append(self.assign)\r
620 nodelist.append(self.iter)\r
621 nodelist.extend(flatten_nodes(self.ifs))\r
622 return tuple(nodelist)\r
623\r
624 def __repr__(self):\r
625 return "GenExprFor(%s, %s, %s)" % (repr(self.assign), repr(self.iter), repr(self.ifs))\r
626\r
627class GenExprIf(Node):\r
628 def __init__(self, test, lineno=None):\r
629 self.test = test\r
630 self.lineno = lineno\r
631\r
632 def getChildren(self):\r
633 return self.test,\r
634\r
635 def getChildNodes(self):\r
636 return self.test,\r
637\r
638 def __repr__(self):\r
639 return "GenExprIf(%s)" % (repr(self.test),)\r
640\r
641class GenExprInner(Node):\r
642 def __init__(self, expr, quals, lineno=None):\r
643 self.expr = expr\r
644 self.quals = quals\r
645 self.lineno = lineno\r
646\r
647 def getChildren(self):\r
648 children = []\r
649 children.append(self.expr)\r
650 children.extend(flatten(self.quals))\r
651 return tuple(children)\r
652\r
653 def getChildNodes(self):\r
654 nodelist = []\r
655 nodelist.append(self.expr)\r
656 nodelist.extend(flatten_nodes(self.quals))\r
657 return tuple(nodelist)\r
658\r
659 def __repr__(self):\r
660 return "GenExprInner(%s, %s)" % (repr(self.expr), repr(self.quals))\r
661\r
662class Getattr(Node):\r
663 def __init__(self, expr, attrname, lineno=None):\r
664 self.expr = expr\r
665 self.attrname = attrname\r
666 self.lineno = lineno\r
667\r
668 def getChildren(self):\r
669 return self.expr, self.attrname\r
670\r
671 def getChildNodes(self):\r
672 return self.expr,\r
673\r
674 def __repr__(self):\r
675 return "Getattr(%s, %s)" % (repr(self.expr), repr(self.attrname))\r
676\r
677class Global(Node):\r
678 def __init__(self, names, lineno=None):\r
679 self.names = names\r
680 self.lineno = lineno\r
681\r
682 def getChildren(self):\r
683 return self.names,\r
684\r
685 def getChildNodes(self):\r
686 return ()\r
687\r
688 def __repr__(self):\r
689 return "Global(%s)" % (repr(self.names),)\r
690\r
691class If(Node):\r
692 def __init__(self, tests, else_, lineno=None):\r
693 self.tests = tests\r
694 self.else_ = else_\r
695 self.lineno = lineno\r
696\r
697 def getChildren(self):\r
698 children = []\r
699 children.extend(flatten(self.tests))\r
700 children.append(self.else_)\r
701 return tuple(children)\r
702\r
703 def getChildNodes(self):\r
704 nodelist = []\r
705 nodelist.extend(flatten_nodes(self.tests))\r
706 if self.else_ is not None:\r
707 nodelist.append(self.else_)\r
708 return tuple(nodelist)\r
709\r
710 def __repr__(self):\r
711 return "If(%s, %s)" % (repr(self.tests), repr(self.else_))\r
712\r
713class IfExp(Node):\r
714 def __init__(self, test, then, else_, lineno=None):\r
715 self.test = test\r
716 self.then = then\r
717 self.else_ = else_\r
718 self.lineno = lineno\r
719\r
720 def getChildren(self):\r
721 return self.test, self.then, self.else_\r
722\r
723 def getChildNodes(self):\r
724 return self.test, self.then, self.else_\r
725\r
726 def __repr__(self):\r
727 return "IfExp(%s, %s, %s)" % (repr(self.test), repr(self.then), repr(self.else_))\r
728\r
729class Import(Node):\r
730 def __init__(self, names, lineno=None):\r
731 self.names = names\r
732 self.lineno = lineno\r
733\r
734 def getChildren(self):\r
735 return self.names,\r
736\r
737 def getChildNodes(self):\r
738 return ()\r
739\r
740 def __repr__(self):\r
741 return "Import(%s)" % (repr(self.names),)\r
742\r
743class Invert(Node):\r
744 def __init__(self, expr, lineno=None):\r
745 self.expr = expr\r
746 self.lineno = lineno\r
747\r
748 def getChildren(self):\r
749 return self.expr,\r
750\r
751 def getChildNodes(self):\r
752 return self.expr,\r
753\r
754 def __repr__(self):\r
755 return "Invert(%s)" % (repr(self.expr),)\r
756\r
757class Keyword(Node):\r
758 def __init__(self, name, expr, lineno=None):\r
759 self.name = name\r
760 self.expr = expr\r
761 self.lineno = lineno\r
762\r
763 def getChildren(self):\r
764 return self.name, self.expr\r
765\r
766 def getChildNodes(self):\r
767 return self.expr,\r
768\r
769 def __repr__(self):\r
770 return "Keyword(%s, %s)" % (repr(self.name), repr(self.expr))\r
771\r
772class Lambda(Node):\r
773 def __init__(self, argnames, defaults, flags, code, lineno=None):\r
774 self.argnames = argnames\r
775 self.defaults = defaults\r
776 self.flags = flags\r
777 self.code = code\r
778 self.lineno = lineno\r
779 self.varargs = self.kwargs = None\r
780 if flags & CO_VARARGS:\r
781 self.varargs = 1\r
782 if flags & CO_VARKEYWORDS:\r
783 self.kwargs = 1\r
784\r
785\r
786 def getChildren(self):\r
787 children = []\r
788 children.append(self.argnames)\r
789 children.extend(flatten(self.defaults))\r
790 children.append(self.flags)\r
791 children.append(self.code)\r
792 return tuple(children)\r
793\r
794 def getChildNodes(self):\r
795 nodelist = []\r
796 nodelist.extend(flatten_nodes(self.defaults))\r
797 nodelist.append(self.code)\r
798 return tuple(nodelist)\r
799\r
800 def __repr__(self):\r
801 return "Lambda(%s, %s, %s, %s)" % (repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.code))\r
802\r
803class LeftShift(Node):\r
804 def __init__(self, leftright, lineno=None):\r
805 self.left = leftright[0]\r
806 self.right = leftright[1]\r
807 self.lineno = lineno\r
808\r
809 def getChildren(self):\r
810 return self.left, self.right\r
811\r
812 def getChildNodes(self):\r
813 return self.left, self.right\r
814\r
815 def __repr__(self):\r
816 return "LeftShift((%s, %s))" % (repr(self.left), repr(self.right))\r
817\r
818class List(Node):\r
819 def __init__(self, nodes, lineno=None):\r
820 self.nodes = nodes\r
821 self.lineno = lineno\r
822\r
823 def getChildren(self):\r
824 return tuple(flatten(self.nodes))\r
825\r
826 def getChildNodes(self):\r
827 nodelist = []\r
828 nodelist.extend(flatten_nodes(self.nodes))\r
829 return tuple(nodelist)\r
830\r
831 def __repr__(self):\r
832 return "List(%s)" % (repr(self.nodes),)\r
833\r
834class ListComp(Node):\r
835 def __init__(self, expr, quals, lineno=None):\r
836 self.expr = expr\r
837 self.quals = quals\r
838 self.lineno = lineno\r
839\r
840 def getChildren(self):\r
841 children = []\r
842 children.append(self.expr)\r
843 children.extend(flatten(self.quals))\r
844 return tuple(children)\r
845\r
846 def getChildNodes(self):\r
847 nodelist = []\r
848 nodelist.append(self.expr)\r
849 nodelist.extend(flatten_nodes(self.quals))\r
850 return tuple(nodelist)\r
851\r
852 def __repr__(self):\r
853 return "ListComp(%s, %s)" % (repr(self.expr), repr(self.quals))\r
854\r
855class ListCompFor(Node):\r
856 def __init__(self, assign, list, ifs, lineno=None):\r
857 self.assign = assign\r
858 self.list = list\r
859 self.ifs = ifs\r
860 self.lineno = lineno\r
861\r
862 def getChildren(self):\r
863 children = []\r
864 children.append(self.assign)\r
865 children.append(self.list)\r
866 children.extend(flatten(self.ifs))\r
867 return tuple(children)\r
868\r
869 def getChildNodes(self):\r
870 nodelist = []\r
871 nodelist.append(self.assign)\r
872 nodelist.append(self.list)\r
873 nodelist.extend(flatten_nodes(self.ifs))\r
874 return tuple(nodelist)\r
875\r
876 def __repr__(self):\r
877 return "ListCompFor(%s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.ifs))\r
878\r
879class ListCompIf(Node):\r
880 def __init__(self, test, lineno=None):\r
881 self.test = test\r
882 self.lineno = lineno\r
883\r
884 def getChildren(self):\r
885 return self.test,\r
886\r
887 def getChildNodes(self):\r
888 return self.test,\r
889\r
890 def __repr__(self):\r
891 return "ListCompIf(%s)" % (repr(self.test),)\r
892\r
893class SetComp(Node):\r
894 def __init__(self, expr, quals, lineno=None):\r
895 self.expr = expr\r
896 self.quals = quals\r
897 self.lineno = lineno\r
898\r
899 def getChildren(self):\r
900 children = []\r
901 children.append(self.expr)\r
902 children.extend(flatten(self.quals))\r
903 return tuple(children)\r
904\r
905 def getChildNodes(self):\r
906 nodelist = []\r
907 nodelist.append(self.expr)\r
908 nodelist.extend(flatten_nodes(self.quals))\r
909 return tuple(nodelist)\r
910\r
911 def __repr__(self):\r
912 return "SetComp(%s, %s)" % (repr(self.expr), repr(self.quals))\r
913\r
914class DictComp(Node):\r
915 def __init__(self, key, value, quals, lineno=None):\r
916 self.key = key\r
917 self.value = value\r
918 self.quals = quals\r
919 self.lineno = lineno\r
920\r
921 def getChildren(self):\r
922 children = []\r
923 children.append(self.key)\r
924 children.append(self.value)\r
925 children.extend(flatten(self.quals))\r
926 return tuple(children)\r
927\r
928 def getChildNodes(self):\r
929 nodelist = []\r
930 nodelist.append(self.key)\r
931 nodelist.append(self.value)\r
932 nodelist.extend(flatten_nodes(self.quals))\r
933 return tuple(nodelist)\r
934\r
935 def __repr__(self):\r
936 return "DictComp(%s, %s, %s)" % (repr(self.key), repr(self.value), repr(self.quals))\r
937\r
938class Mod(Node):\r
939 def __init__(self, leftright, lineno=None):\r
940 self.left = leftright[0]\r
941 self.right = leftright[1]\r
942 self.lineno = lineno\r
943\r
944 def getChildren(self):\r
945 return self.left, self.right\r
946\r
947 def getChildNodes(self):\r
948 return self.left, self.right\r
949\r
950 def __repr__(self):\r
951 return "Mod((%s, %s))" % (repr(self.left), repr(self.right))\r
952\r
953class Module(Node):\r
954 def __init__(self, doc, node, lineno=None):\r
955 self.doc = doc\r
956 self.node = node\r
957 self.lineno = lineno\r
958\r
959 def getChildren(self):\r
960 return self.doc, self.node\r
961\r
962 def getChildNodes(self):\r
963 return self.node,\r
964\r
965 def __repr__(self):\r
966 return "Module(%s, %s)" % (repr(self.doc), repr(self.node))\r
967\r
968class Mul(Node):\r
969 def __init__(self, leftright, lineno=None):\r
970 self.left = leftright[0]\r
971 self.right = leftright[1]\r
972 self.lineno = lineno\r
973\r
974 def getChildren(self):\r
975 return self.left, self.right\r
976\r
977 def getChildNodes(self):\r
978 return self.left, self.right\r
979\r
980 def __repr__(self):\r
981 return "Mul((%s, %s))" % (repr(self.left), repr(self.right))\r
982\r
983class Name(Node):\r
984 def __init__(self, name, lineno=None):\r
985 self.name = name\r
986 self.lineno = lineno\r
987\r
988 def getChildren(self):\r
989 return self.name,\r
990\r
991 def getChildNodes(self):\r
992 return ()\r
993\r
994 def __repr__(self):\r
995 return "Name(%s)" % (repr(self.name),)\r
996\r
997class Not(Node):\r
998 def __init__(self, expr, lineno=None):\r
999 self.expr = expr\r
1000 self.lineno = lineno\r
1001\r
1002 def getChildren(self):\r
1003 return self.expr,\r
1004\r
1005 def getChildNodes(self):\r
1006 return self.expr,\r
1007\r
1008 def __repr__(self):\r
1009 return "Not(%s)" % (repr(self.expr),)\r
1010\r
1011class Or(Node):\r
1012 def __init__(self, nodes, lineno=None):\r
1013 self.nodes = nodes\r
1014 self.lineno = lineno\r
1015\r
1016 def getChildren(self):\r
1017 return tuple(flatten(self.nodes))\r
1018\r
1019 def getChildNodes(self):\r
1020 nodelist = []\r
1021 nodelist.extend(flatten_nodes(self.nodes))\r
1022 return tuple(nodelist)\r
1023\r
1024 def __repr__(self):\r
1025 return "Or(%s)" % (repr(self.nodes),)\r
1026\r
1027class Pass(Node):\r
1028 def __init__(self, lineno=None):\r
1029 self.lineno = lineno\r
1030\r
1031 def getChildren(self):\r
1032 return ()\r
1033\r
1034 def getChildNodes(self):\r
1035 return ()\r
1036\r
1037 def __repr__(self):\r
1038 return "Pass()"\r
1039\r
1040class Power(Node):\r
1041 def __init__(self, leftright, lineno=None):\r
1042 self.left = leftright[0]\r
1043 self.right = leftright[1]\r
1044 self.lineno = lineno\r
1045\r
1046 def getChildren(self):\r
1047 return self.left, self.right\r
1048\r
1049 def getChildNodes(self):\r
1050 return self.left, self.right\r
1051\r
1052 def __repr__(self):\r
1053 return "Power((%s, %s))" % (repr(self.left), repr(self.right))\r
1054\r
1055class Print(Node):\r
1056 def __init__(self, nodes, dest, lineno=None):\r
1057 self.nodes = nodes\r
1058 self.dest = dest\r
1059 self.lineno = lineno\r
1060\r
1061 def getChildren(self):\r
1062 children = []\r
1063 children.extend(flatten(self.nodes))\r
1064 children.append(self.dest)\r
1065 return tuple(children)\r
1066\r
1067 def getChildNodes(self):\r
1068 nodelist = []\r
1069 nodelist.extend(flatten_nodes(self.nodes))\r
1070 if self.dest is not None:\r
1071 nodelist.append(self.dest)\r
1072 return tuple(nodelist)\r
1073\r
1074 def __repr__(self):\r
1075 return "Print(%s, %s)" % (repr(self.nodes), repr(self.dest))\r
1076\r
1077class Printnl(Node):\r
1078 def __init__(self, nodes, dest, lineno=None):\r
1079 self.nodes = nodes\r
1080 self.dest = dest\r
1081 self.lineno = lineno\r
1082\r
1083 def getChildren(self):\r
1084 children = []\r
1085 children.extend(flatten(self.nodes))\r
1086 children.append(self.dest)\r
1087 return tuple(children)\r
1088\r
1089 def getChildNodes(self):\r
1090 nodelist = []\r
1091 nodelist.extend(flatten_nodes(self.nodes))\r
1092 if self.dest is not None:\r
1093 nodelist.append(self.dest)\r
1094 return tuple(nodelist)\r
1095\r
1096 def __repr__(self):\r
1097 return "Printnl(%s, %s)" % (repr(self.nodes), repr(self.dest))\r
1098\r
1099class Raise(Node):\r
1100 def __init__(self, expr1, expr2, expr3, lineno=None):\r
1101 self.expr1 = expr1\r
1102 self.expr2 = expr2\r
1103 self.expr3 = expr3\r
1104 self.lineno = lineno\r
1105\r
1106 def getChildren(self):\r
1107 children = []\r
1108 children.append(self.expr1)\r
1109 children.append(self.expr2)\r
1110 children.append(self.expr3)\r
1111 return tuple(children)\r
1112\r
1113 def getChildNodes(self):\r
1114 nodelist = []\r
1115 if self.expr1 is not None:\r
1116 nodelist.append(self.expr1)\r
1117 if self.expr2 is not None:\r
1118 nodelist.append(self.expr2)\r
1119 if self.expr3 is not None:\r
1120 nodelist.append(self.expr3)\r
1121 return tuple(nodelist)\r
1122\r
1123 def __repr__(self):\r
1124 return "Raise(%s, %s, %s)" % (repr(self.expr1), repr(self.expr2), repr(self.expr3))\r
1125\r
1126class Return(Node):\r
1127 def __init__(self, value, lineno=None):\r
1128 self.value = value\r
1129 self.lineno = lineno\r
1130\r
1131 def getChildren(self):\r
1132 return self.value,\r
1133\r
1134 def getChildNodes(self):\r
1135 return self.value,\r
1136\r
1137 def __repr__(self):\r
1138 return "Return(%s)" % (repr(self.value),)\r
1139\r
1140class RightShift(Node):\r
1141 def __init__(self, leftright, lineno=None):\r
1142 self.left = leftright[0]\r
1143 self.right = leftright[1]\r
1144 self.lineno = lineno\r
1145\r
1146 def getChildren(self):\r
1147 return self.left, self.right\r
1148\r
1149 def getChildNodes(self):\r
1150 return self.left, self.right\r
1151\r
1152 def __repr__(self):\r
1153 return "RightShift((%s, %s))" % (repr(self.left), repr(self.right))\r
1154\r
1155class Set(Node):\r
1156 def __init__(self, nodes, lineno=None):\r
1157 self.nodes = nodes\r
1158 self.lineno = lineno\r
1159\r
1160 def getChildren(self):\r
1161 return tuple(flatten(self.nodes))\r
1162\r
1163 def getChildNodes(self):\r
1164 nodelist = []\r
1165 nodelist.extend(flatten_nodes(self.nodes))\r
1166 return tuple(nodelist)\r
1167\r
1168 def __repr__(self):\r
1169 return "Set(%s)" % (repr(self.nodes),)\r
1170\r
1171class Slice(Node):\r
1172 def __init__(self, expr, flags, lower, upper, lineno=None):\r
1173 self.expr = expr\r
1174 self.flags = flags\r
1175 self.lower = lower\r
1176 self.upper = upper\r
1177 self.lineno = lineno\r
1178\r
1179 def getChildren(self):\r
1180 children = []\r
1181 children.append(self.expr)\r
1182 children.append(self.flags)\r
1183 children.append(self.lower)\r
1184 children.append(self.upper)\r
1185 return tuple(children)\r
1186\r
1187 def getChildNodes(self):\r
1188 nodelist = []\r
1189 nodelist.append(self.expr)\r
1190 if self.lower is not None:\r
1191 nodelist.append(self.lower)\r
1192 if self.upper is not None:\r
1193 nodelist.append(self.upper)\r
1194 return tuple(nodelist)\r
1195\r
1196 def __repr__(self):\r
1197 return "Slice(%s, %s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.lower), repr(self.upper))\r
1198\r
1199class Sliceobj(Node):\r
1200 def __init__(self, nodes, lineno=None):\r
1201 self.nodes = nodes\r
1202 self.lineno = lineno\r
1203\r
1204 def getChildren(self):\r
1205 return tuple(flatten(self.nodes))\r
1206\r
1207 def getChildNodes(self):\r
1208 nodelist = []\r
1209 nodelist.extend(flatten_nodes(self.nodes))\r
1210 return tuple(nodelist)\r
1211\r
1212 def __repr__(self):\r
1213 return "Sliceobj(%s)" % (repr(self.nodes),)\r
1214\r
1215class Stmt(Node):\r
1216 def __init__(self, nodes, lineno=None):\r
1217 self.nodes = nodes\r
1218 self.lineno = lineno\r
1219\r
1220 def getChildren(self):\r
1221 return tuple(flatten(self.nodes))\r
1222\r
1223 def getChildNodes(self):\r
1224 nodelist = []\r
1225 nodelist.extend(flatten_nodes(self.nodes))\r
1226 return tuple(nodelist)\r
1227\r
1228 def __repr__(self):\r
1229 return "Stmt(%s)" % (repr(self.nodes),)\r
1230\r
1231class Sub(Node):\r
1232 def __init__(self, leftright, lineno=None):\r
1233 self.left = leftright[0]\r
1234 self.right = leftright[1]\r
1235 self.lineno = lineno\r
1236\r
1237 def getChildren(self):\r
1238 return self.left, self.right\r
1239\r
1240 def getChildNodes(self):\r
1241 return self.left, self.right\r
1242\r
1243 def __repr__(self):\r
1244 return "Sub((%s, %s))" % (repr(self.left), repr(self.right))\r
1245\r
1246class Subscript(Node):\r
1247 def __init__(self, expr, flags, subs, lineno=None):\r
1248 self.expr = expr\r
1249 self.flags = flags\r
1250 self.subs = subs\r
1251 self.lineno = lineno\r
1252\r
1253 def getChildren(self):\r
1254 children = []\r
1255 children.append(self.expr)\r
1256 children.append(self.flags)\r
1257 children.extend(flatten(self.subs))\r
1258 return tuple(children)\r
1259\r
1260 def getChildNodes(self):\r
1261 nodelist = []\r
1262 nodelist.append(self.expr)\r
1263 nodelist.extend(flatten_nodes(self.subs))\r
1264 return tuple(nodelist)\r
1265\r
1266 def __repr__(self):\r
1267 return "Subscript(%s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.subs))\r
1268\r
1269class TryExcept(Node):\r
1270 def __init__(self, body, handlers, else_, lineno=None):\r
1271 self.body = body\r
1272 self.handlers = handlers\r
1273 self.else_ = else_\r
1274 self.lineno = lineno\r
1275\r
1276 def getChildren(self):\r
1277 children = []\r
1278 children.append(self.body)\r
1279 children.extend(flatten(self.handlers))\r
1280 children.append(self.else_)\r
1281 return tuple(children)\r
1282\r
1283 def getChildNodes(self):\r
1284 nodelist = []\r
1285 nodelist.append(self.body)\r
1286 nodelist.extend(flatten_nodes(self.handlers))\r
1287 if self.else_ is not None:\r
1288 nodelist.append(self.else_)\r
1289 return tuple(nodelist)\r
1290\r
1291 def __repr__(self):\r
1292 return "TryExcept(%s, %s, %s)" % (repr(self.body), repr(self.handlers), repr(self.else_))\r
1293\r
1294class TryFinally(Node):\r
1295 def __init__(self, body, final, lineno=None):\r
1296 self.body = body\r
1297 self.final = final\r
1298 self.lineno = lineno\r
1299\r
1300 def getChildren(self):\r
1301 return self.body, self.final\r
1302\r
1303 def getChildNodes(self):\r
1304 return self.body, self.final\r
1305\r
1306 def __repr__(self):\r
1307 return "TryFinally(%s, %s)" % (repr(self.body), repr(self.final))\r
1308\r
1309class Tuple(Node):\r
1310 def __init__(self, nodes, lineno=None):\r
1311 self.nodes = nodes\r
1312 self.lineno = lineno\r
1313\r
1314 def getChildren(self):\r
1315 return tuple(flatten(self.nodes))\r
1316\r
1317 def getChildNodes(self):\r
1318 nodelist = []\r
1319 nodelist.extend(flatten_nodes(self.nodes))\r
1320 return tuple(nodelist)\r
1321\r
1322 def __repr__(self):\r
1323 return "Tuple(%s)" % (repr(self.nodes),)\r
1324\r
1325class UnaryAdd(Node):\r
1326 def __init__(self, expr, lineno=None):\r
1327 self.expr = expr\r
1328 self.lineno = lineno\r
1329\r
1330 def getChildren(self):\r
1331 return self.expr,\r
1332\r
1333 def getChildNodes(self):\r
1334 return self.expr,\r
1335\r
1336 def __repr__(self):\r
1337 return "UnaryAdd(%s)" % (repr(self.expr),)\r
1338\r
1339class UnarySub(Node):\r
1340 def __init__(self, expr, lineno=None):\r
1341 self.expr = expr\r
1342 self.lineno = lineno\r
1343\r
1344 def getChildren(self):\r
1345 return self.expr,\r
1346\r
1347 def getChildNodes(self):\r
1348 return self.expr,\r
1349\r
1350 def __repr__(self):\r
1351 return "UnarySub(%s)" % (repr(self.expr),)\r
1352\r
1353class While(Node):\r
1354 def __init__(self, test, body, else_, lineno=None):\r
1355 self.test = test\r
1356 self.body = body\r
1357 self.else_ = else_\r
1358 self.lineno = lineno\r
1359\r
1360 def getChildren(self):\r
1361 children = []\r
1362 children.append(self.test)\r
1363 children.append(self.body)\r
1364 children.append(self.else_)\r
1365 return tuple(children)\r
1366\r
1367 def getChildNodes(self):\r
1368 nodelist = []\r
1369 nodelist.append(self.test)\r
1370 nodelist.append(self.body)\r
1371 if self.else_ is not None:\r
1372 nodelist.append(self.else_)\r
1373 return tuple(nodelist)\r
1374\r
1375 def __repr__(self):\r
1376 return "While(%s, %s, %s)" % (repr(self.test), repr(self.body), repr(self.else_))\r
1377\r
1378class With(Node):\r
1379 def __init__(self, expr, vars, body, lineno=None):\r
1380 self.expr = expr\r
1381 self.vars = vars\r
1382 self.body = body\r
1383 self.lineno = lineno\r
1384\r
1385 def getChildren(self):\r
1386 children = []\r
1387 children.append(self.expr)\r
1388 children.append(self.vars)\r
1389 children.append(self.body)\r
1390 return tuple(children)\r
1391\r
1392 def getChildNodes(self):\r
1393 nodelist = []\r
1394 nodelist.append(self.expr)\r
1395 if self.vars is not None:\r
1396 nodelist.append(self.vars)\r
1397 nodelist.append(self.body)\r
1398 return tuple(nodelist)\r
1399\r
1400 def __repr__(self):\r
1401 return "With(%s, %s, %s)" % (repr(self.expr), repr(self.vars), repr(self.body))\r
1402\r
1403class Yield(Node):\r
1404 def __init__(self, value, lineno=None):\r
1405 self.value = value\r
1406 self.lineno = lineno\r
1407\r
1408 def getChildren(self):\r
1409 return self.value,\r
1410\r
1411 def getChildNodes(self):\r
1412 return self.value,\r
1413\r
1414 def __repr__(self):\r
1415 return "Yield(%s)" % (repr(self.value),)\r
1416\r
1417for name, obj in globals().items():\r
1418 if isinstance(obj, type) and issubclass(obj, Node):\r
1419 nodes[name.lower()] = obj\r