14710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm"""Python abstract syntax node definitions
24710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
34710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmThis file is automatically generated by Tools/compiler/astgen.py
44710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm"""
54710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfrom compiler.consts import CO_VARARGS, CO_VARKEYWORDS
64710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
74710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmdef flatten(seq):
84710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    l = []
94710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    for elt in seq:
104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        t = type(elt)
114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if t is tuple or t is list:
124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            for elt2 in flatten(elt):
134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm                l.append(elt2)
144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        else:
154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            l.append(elt)
164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    return l
174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmdef flatten_nodes(seq):
194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    return [n for n in flatten(seq) if isinstance(n, Node)]
204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmnodes = {}
224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Node:
244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    """Abstract base class for ast nodes."""
254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        pass # implemented by subclasses
274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __iter__(self):
284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        for n in self.getChildren():
294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            yield n
304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def asList(self): # for backwards compatibility
314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.getChildren()
324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        pass # implemented by subclasses
344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass EmptyNode(Node):
364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    pass
374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Expression(Node):
394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    # Expression is an artificial node class to support "eval"
404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    nodes["expression"] = "Expression"
414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, node):
424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.node = node
434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.node,
464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.node,
494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Expression(%s)" % (repr(self.node))
524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Add(Node):
544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, leftright, lineno=None):
554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.left = leftright[0]
564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.right = leftright[1]
574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Add((%s, %s))" % (repr(self.left), repr(self.right))
674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass And(Node):
694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "And(%s)" % (repr(self.nodes),)
834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass AssAttr(Node):
854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, attrname, flags, lineno=None):
864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.attrname = attrname
884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.flags = flags
894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr, self.attrname, self.flags
934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "AssAttr(%s, %s, %s)" % (repr(self.expr), repr(self.attrname), repr(self.flags))
994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass AssList(Node):
1014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
1024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
1034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
1044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
1064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
1074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
1094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
1104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
1114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
1124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
1144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "AssList(%s)" % (repr(self.nodes),)
1154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass AssName(Node):
1174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, name, flags, lineno=None):
1184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.name = name
1194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.flags = flags
1204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
1214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
1234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.name, self.flags
1244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
1264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
1274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
1294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "AssName(%s, %s)" % (repr(self.name), repr(self.flags))
1304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass AssTuple(Node):
1324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
1334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
1344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
1354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
1374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
1384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
1404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
1414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
1424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
1434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
1454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "AssTuple(%s)" % (repr(self.nodes),)
1464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Assert(Node):
1484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, test, fail, lineno=None):
1494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.test = test
1504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.fail = fail
1514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
1524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
1544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
1554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.test)
1564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.fail)
1574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
1584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
1604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
1614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.test)
1624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.fail is not None:
1634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.fail)
1644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
1654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
1674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Assert(%s, %s)" % (repr(self.test), repr(self.fail))
1684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Assign(Node):
1704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, expr, lineno=None):
1714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
1724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
1734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
1744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
1764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
1774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.nodes))
1784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr)
1794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
1804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
1824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
1834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
1844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.expr)
1854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
1864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
1884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Assign(%s, %s)" % (repr(self.nodes), repr(self.expr))
1894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass AugAssign(Node):
1914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, node, op, expr, lineno=None):
1924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.node = node
1934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.op = op
1944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
1954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
1964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
1974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
1984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.node, self.op, self.expr
1994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
2014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.node, self.expr
2024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
2044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "AugAssign(%s, %s, %s)" % (repr(self.node), repr(self.op), repr(self.expr))
2054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Backquote(Node):
2074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, lineno=None):
2084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
2094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
2104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
2124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
2134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
2154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
2164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
2184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Backquote(%s)" % (repr(self.expr),)
2194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Bitand(Node):
2214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
2224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
2234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
2244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
2264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
2274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
2294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
2304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
2314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
2324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
2344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Bitand(%s)" % (repr(self.nodes),)
2354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Bitor(Node):
2374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
2384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
2394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
2404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
2424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
2434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
2454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
2464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
2474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
2484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
2504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Bitor(%s)" % (repr(self.nodes),)
2514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Bitxor(Node):
2534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
2544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
2554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
2564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
2584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
2594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
2614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
2624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
2634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
2644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
2664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Bitxor(%s)" % (repr(self.nodes),)
2674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Break(Node):
2694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, lineno=None):
2704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
2714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
2734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
2744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
2764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
2774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
2794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Break()"
2804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass CallFunc(Node):
2824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, node, args, star_args = None, dstar_args = None, lineno=None):
2834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.node = node
2844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.args = args
2854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.star_args = star_args
2864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.dstar_args = dstar_args
2874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
2884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
2904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
2914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.node)
2924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.args))
2934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.star_args)
2944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.dstar_args)
2954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
2964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
2974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
2984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
2994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.node)
3004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.args))
3014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.star_args is not None:
3024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.star_args)
3034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.dstar_args is not None:
3044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.dstar_args)
3054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
3064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
3084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "CallFunc(%s, %s, %s, %s)" % (repr(self.node), repr(self.args), repr(self.star_args), repr(self.dstar_args))
3094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Class(Node):
3114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, name, bases, doc, code, decorators = None, lineno=None):
3124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.name = name
3134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.bases = bases
3144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.doc = doc
3154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.code = code
3164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.decorators = decorators
3174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
3184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
3204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
3214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.name)
3224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.bases))
3234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.doc)
3244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.code)
3254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.decorators)
3264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
3274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
3294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
3304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.bases))
3314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.code)
3324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.decorators is not None:
3334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.decorators)
3344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
3354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
3374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Class(%s, %s, %s, %s, %s)" % (repr(self.name), repr(self.bases), repr(self.doc), repr(self.code), repr(self.decorators))
3384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Compare(Node):
3404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, ops, lineno=None):
3414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
3424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.ops = ops
3434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
3444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
3464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
3474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr)
3484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.ops))
3494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
3504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
3524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
3534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.expr)
3544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.ops))
3554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
3564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
3584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Compare(%s, %s)" % (repr(self.expr), repr(self.ops))
3594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Const(Node):
3614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, value, lineno=None):
3624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.value = value
3634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
3644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
3664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.value,
3674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
3694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
3704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
3724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Const(%s)" % (repr(self.value),)
3734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Continue(Node):
3754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, lineno=None):
3764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
3774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
3794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
3804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
3824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
3834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
3854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Continue()"
3864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Decorators(Node):
3884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
3894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
3904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
3914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
3934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
3944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
3954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
3964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
3974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
3984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
3994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
4014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Decorators(%s)" % (repr(self.nodes),)
4024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Dict(Node):
4044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, items, lineno=None):
4054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.items = items
4064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
4074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
4094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.items))
4104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
4124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
4134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.items))
4144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
4154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
4174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Dict(%s)" % (repr(self.items),)
4184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Discard(Node):
4204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, lineno=None):
4214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
4224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
4234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
4254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
4264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
4284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
4294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
4314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Discard(%s)" % (repr(self.expr),)
4324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Div(Node):
4344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, leftright, lineno=None):
4354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.left = leftright[0]
4364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.right = leftright[1]
4374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
4384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
4404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
4414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
4434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
4444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
4464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Div((%s, %s))" % (repr(self.left), repr(self.right))
4474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Ellipsis(Node):
4494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, lineno=None):
4504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
4514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
4534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
4544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
4564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
4574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
4594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Ellipsis()"
4604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Exec(Node):
4624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, locals, globals, lineno=None):
4634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
4644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.locals = locals
4654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.globals = globals
4664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
4674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
4694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
4704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr)
4714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.locals)
4724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.globals)
4734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
4744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
4764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
4774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.expr)
4784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.locals is not None:
4794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.locals)
4804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.globals is not None:
4814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.globals)
4824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
4834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
4854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Exec(%s, %s, %s)" % (repr(self.expr), repr(self.locals), repr(self.globals))
4864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass FloorDiv(Node):
4884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, leftright, lineno=None):
4894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.left = leftright[0]
4904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.right = leftright[1]
4914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
4924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
4944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
4954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
4974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
4984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
4994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
5004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "FloorDiv((%s, %s))" % (repr(self.left), repr(self.right))
5014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass For(Node):
5034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, assign, list, body, else_, lineno=None):
5044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.assign = assign
5054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.list = list
5064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.body = body
5074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.else_ = else_
5084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
5094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
5114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
5124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.assign)
5134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.list)
5144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.body)
5154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.else_)
5164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
5174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
5194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
5204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.assign)
5214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.list)
5224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.body)
5234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.else_ is not None:
5244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.else_)
5254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
5264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
5284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "For(%s, %s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.body), repr(self.else_))
5294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass From(Node):
5314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, modname, names, level, lineno=None):
5324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.modname = modname
5334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.names = names
5344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.level = level
5354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
5364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
5384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.modname, self.names, self.level
5394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
5414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
5424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
5444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "From(%s, %s, %s)" % (repr(self.modname), repr(self.names), repr(self.level))
5454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Function(Node):
5474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, decorators, name, argnames, defaults, flags, doc, code, lineno=None):
5484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.decorators = decorators
5494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.name = name
5504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.argnames = argnames
5514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.defaults = defaults
5524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.flags = flags
5534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.doc = doc
5544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.code = code
5554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
5564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.varargs = self.kwargs = None
5574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if flags & CO_VARARGS:
5584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            self.varargs = 1
5594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if flags & CO_VARKEYWORDS:
5604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            self.kwargs = 1
5614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
5644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
5654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.decorators)
5664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.name)
5674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.argnames)
5684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.defaults))
5694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.flags)
5704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.doc)
5714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.code)
5724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
5734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
5754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
5764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.decorators is not None:
5774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.decorators)
5784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.defaults))
5794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.code)
5804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
5814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
5834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        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))
5844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass GenExpr(Node):
5864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, code, lineno=None):
5874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.code = code
5884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
5894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.argnames = ['.0']
5904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.varargs = self.kwargs = None
5914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
5944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.code,
5954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
5974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.code,
5984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
5994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
6004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "GenExpr(%s)" % (repr(self.code),)
6014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass GenExprFor(Node):
6034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, assign, iter, ifs, lineno=None):
6044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.assign = assign
6054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.iter = iter
6064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.ifs = ifs
6074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
6084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.is_outmost = False
6094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
6114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
6124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.assign)
6134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.iter)
6144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.ifs))
6154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
6164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
6184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
6194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.assign)
6204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.iter)
6214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.ifs))
6224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
6234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
6254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "GenExprFor(%s, %s, %s)" % (repr(self.assign), repr(self.iter), repr(self.ifs))
6264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass GenExprIf(Node):
6284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, test, lineno=None):
6294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.test = test
6304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
6314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
6334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.test,
6344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
6364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.test,
6374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
6394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "GenExprIf(%s)" % (repr(self.test),)
6404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass GenExprInner(Node):
6424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, quals, lineno=None):
6434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
6444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.quals = quals
6454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
6464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
6484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
6494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr)
6504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.quals))
6514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
6524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
6544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
6554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.expr)
6564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.quals))
6574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
6584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
6604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "GenExprInner(%s, %s)" % (repr(self.expr), repr(self.quals))
6614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Getattr(Node):
6634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, attrname, lineno=None):
6644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
6654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.attrname = attrname
6664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
6674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
6694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr, self.attrname
6704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
6724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
6734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
6754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Getattr(%s, %s)" % (repr(self.expr), repr(self.attrname))
6764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Global(Node):
6784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, names, lineno=None):
6794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.names = names
6804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
6814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
6834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.names,
6844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
6864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
6874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
6894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Global(%s)" % (repr(self.names),)
6904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass If(Node):
6924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, tests, else_, lineno=None):
6934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.tests = tests
6944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.else_ = else_
6954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
6964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
6974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
6984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
6994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.tests))
7004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.else_)
7014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
7024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
7044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
7054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.tests))
7064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.else_ is not None:
7074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.else_)
7084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
7094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
7114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "If(%s, %s)" % (repr(self.tests), repr(self.else_))
7124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass IfExp(Node):
7144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, test, then, else_, lineno=None):
7154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.test = test
7164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.then = then
7174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.else_ = else_
7184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
7194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
7214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.test, self.then, self.else_
7224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
7244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.test, self.then, self.else_
7254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
7274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "IfExp(%s, %s, %s)" % (repr(self.test), repr(self.then), repr(self.else_))
7284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Import(Node):
7304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, names, lineno=None):
7314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.names = names
7324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
7334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
7354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.names,
7364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
7384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
7394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
7414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Import(%s)" % (repr(self.names),)
7424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Invert(Node):
7444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, lineno=None):
7454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
7464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
7474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
7494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
7504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
7524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
7534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
7554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Invert(%s)" % (repr(self.expr),)
7564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Keyword(Node):
7584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, name, expr, lineno=None):
7594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.name = name
7604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
7614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
7624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
7644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.name, self.expr
7654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
7674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
7684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
7704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Keyword(%s, %s)" % (repr(self.name), repr(self.expr))
7714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Lambda(Node):
7734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, argnames, defaults, flags, code, lineno=None):
7744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.argnames = argnames
7754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.defaults = defaults
7764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.flags = flags
7774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.code = code
7784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
7794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.varargs = self.kwargs = None
7804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if flags & CO_VARARGS:
7814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            self.varargs = 1
7824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if flags & CO_VARKEYWORDS:
7834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            self.kwargs = 1
7844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
7874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
7884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.argnames)
7894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.defaults))
7904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.flags)
7914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.code)
7924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
7934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
7944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
7954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
7964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.defaults))
7974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.code)
7984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
7994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
8014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Lambda(%s, %s, %s, %s)" % (repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.code))
8024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass LeftShift(Node):
8044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, leftright, lineno=None):
8054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.left = leftright[0]
8064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.right = leftright[1]
8074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
8084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
8104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
8114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
8134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
8144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
8164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "LeftShift((%s, %s))" % (repr(self.left), repr(self.right))
8174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass List(Node):
8194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
8204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
8214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
8224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
8244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
8254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
8274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
8284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
8294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
8304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
8324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "List(%s)" % (repr(self.nodes),)
8334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass ListComp(Node):
8354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, quals, lineno=None):
8364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
8374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.quals = quals
8384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
8394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
8414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
8424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr)
8434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.quals))
8444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
8454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
8474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
8484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.expr)
8494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.quals))
8504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
8514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
8534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "ListComp(%s, %s)" % (repr(self.expr), repr(self.quals))
8544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass ListCompFor(Node):
8564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, assign, list, ifs, lineno=None):
8574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.assign = assign
8584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.list = list
8594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.ifs = ifs
8604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
8614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
8634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
8644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.assign)
8654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.list)
8664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.ifs))
8674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
8684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
8704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
8714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.assign)
8724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.list)
8734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.ifs))
8744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
8754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
8774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "ListCompFor(%s, %s, %s)" % (repr(self.assign), repr(self.list), repr(self.ifs))
8784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass ListCompIf(Node):
8804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, test, lineno=None):
8814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.test = test
8824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
8834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
8854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.test,
8864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
8884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.test,
8894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
8914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "ListCompIf(%s)" % (repr(self.test),)
8924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass SetComp(Node):
8944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, quals, lineno=None):
8954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
8964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.quals = quals
8974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
8984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
8994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
9004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
9014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr)
9024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.quals))
9034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
9044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
9064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
9074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.expr)
9084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.quals))
9094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
9104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
9124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "SetComp(%s, %s)" % (repr(self.expr), repr(self.quals))
9134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass DictComp(Node):
9154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, key, value, quals, lineno=None):
9164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.key = key
9174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.value = value
9184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.quals = quals
9194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
9204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
9224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
9234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.key)
9244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.value)
9254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.quals))
9264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
9274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
9294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
9304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.key)
9314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.value)
9324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.quals))
9334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
9344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
9364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "DictComp(%s, %s, %s)" % (repr(self.key), repr(self.value), repr(self.quals))
9374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Mod(Node):
9394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, leftright, lineno=None):
9404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.left = leftright[0]
9414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.right = leftright[1]
9424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
9434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
9454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
9464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
9484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
9494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
9514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Mod((%s, %s))" % (repr(self.left), repr(self.right))
9524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Module(Node):
9544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, doc, node, lineno=None):
9554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.doc = doc
9564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.node = node
9574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
9584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
9604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.doc, self.node
9614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
9634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.node,
9644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
9664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Module(%s, %s)" % (repr(self.doc), repr(self.node))
9674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Mul(Node):
9694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, leftright, lineno=None):
9704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.left = leftright[0]
9714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.right = leftright[1]
9724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
9734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
9754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
9764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
9784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
9794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
9814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Mul((%s, %s))" % (repr(self.left), repr(self.right))
9824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Name(Node):
9844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, name, lineno=None):
9854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.name = name
9864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
9874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
9894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.name,
9904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
9924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
9934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
9954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Name(%s)" % (repr(self.name),)
9964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
9974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Not(Node):
9984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, lineno=None):
9994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
10004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
10014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
10034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
10044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
10064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
10074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
10094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Not(%s)" % (repr(self.expr),)
10104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Or(Node):
10124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
10134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
10144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
10154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
10174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
10184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
10204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
10214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
10224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
10234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
10254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Or(%s)" % (repr(self.nodes),)
10264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Pass(Node):
10284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, lineno=None):
10294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
10304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
10324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
10334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
10354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return ()
10364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
10384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Pass()"
10394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Power(Node):
10414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, leftright, lineno=None):
10424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.left = leftright[0]
10434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.right = leftright[1]
10444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
10454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
10474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
10484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
10504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
10514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
10534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Power((%s, %s))" % (repr(self.left), repr(self.right))
10544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Print(Node):
10564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, dest, lineno=None):
10574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
10584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.dest = dest
10594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
10604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
10624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
10634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.nodes))
10644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.dest)
10654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
10664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
10684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
10694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
10704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.dest is not None:
10714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.dest)
10724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
10734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
10754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Print(%s, %s)" % (repr(self.nodes), repr(self.dest))
10764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Printnl(Node):
10784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, dest, lineno=None):
10794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
10804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.dest = dest
10814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
10824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
10844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
10854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.nodes))
10864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.dest)
10874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
10884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
10904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
10914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
10924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.dest is not None:
10934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.dest)
10944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
10954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
10974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Printnl(%s, %s)" % (repr(self.nodes), repr(self.dest))
10984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
10994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Raise(Node):
11004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr1, expr2, expr3, lineno=None):
11014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr1 = expr1
11024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr2 = expr2
11034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr3 = expr3
11044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
11054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
11074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
11084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr1)
11094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr2)
11104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr3)
11114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
11124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
11144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
11154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.expr1 is not None:
11164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.expr1)
11174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.expr2 is not None:
11184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.expr2)
11194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.expr3 is not None:
11204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.expr3)
11214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
11224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
11244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Raise(%s, %s, %s)" % (repr(self.expr1), repr(self.expr2), repr(self.expr3))
11254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Return(Node):
11274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, value, lineno=None):
11284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.value = value
11294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
11304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
11324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.value,
11334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
11354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.value,
11364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
11384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Return(%s)" % (repr(self.value),)
11394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass RightShift(Node):
11414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, leftright, lineno=None):
11424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.left = leftright[0]
11434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.right = leftright[1]
11444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
11454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
11474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
11484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
11504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
11514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
11534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "RightShift((%s, %s))" % (repr(self.left), repr(self.right))
11544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Set(Node):
11564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
11574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
11584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
11594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
11614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
11624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
11644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
11654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
11664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
11674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
11694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Set(%s)" % (repr(self.nodes),)
11704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Slice(Node):
11724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, flags, lower, upper, lineno=None):
11734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
11744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.flags = flags
11754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lower = lower
11764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.upper = upper
11774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
11784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
11804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
11814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr)
11824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.flags)
11834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.lower)
11844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.upper)
11854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
11864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
11884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
11894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.expr)
11904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.lower is not None:
11914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.lower)
11924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.upper is not None:
11934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.upper)
11944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
11954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
11974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Slice(%s, %s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.lower), repr(self.upper))
11984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
11994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Sliceobj(Node):
12004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
12014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
12024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
12034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
12054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
12064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
12084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
12094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
12104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
12114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
12134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Sliceobj(%s)" % (repr(self.nodes),)
12144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Stmt(Node):
12164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
12174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
12184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
12194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
12214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
12224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
12244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
12254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
12264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
12274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
12294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Stmt(%s)" % (repr(self.nodes),)
12304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Sub(Node):
12324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, leftright, lineno=None):
12334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.left = leftright[0]
12344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.right = leftright[1]
12354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
12364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
12384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
12394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
12414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.left, self.right
12424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
12444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Sub((%s, %s))" % (repr(self.left), repr(self.right))
12454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Subscript(Node):
12474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, flags, subs, lineno=None):
12484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
12494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.flags = flags
12504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.subs = subs
12514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
12524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
12544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
12554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr)
12564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.flags)
12574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.subs))
12584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
12594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
12614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
12624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.expr)
12634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.subs))
12644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
12654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
12674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Subscript(%s, %s, %s)" % (repr(self.expr), repr(self.flags), repr(self.subs))
12684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass TryExcept(Node):
12704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, body, handlers, else_, lineno=None):
12714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.body = body
12724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.handlers = handlers
12734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.else_ = else_
12744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
12754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
12774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
12784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.body)
12794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.extend(flatten(self.handlers))
12804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.else_)
12814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
12824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
12844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
12854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.body)
12864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.handlers))
12874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.else_ is not None:
12884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.else_)
12894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
12904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
12924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "TryExcept(%s, %s, %s)" % (repr(self.body), repr(self.handlers), repr(self.else_))
12934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
12944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass TryFinally(Node):
12954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, body, final, lineno=None):
12964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.body = body
12974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.final = final
12984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
12994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
13014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.body, self.final
13024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
13044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.body, self.final
13054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
13074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "TryFinally(%s, %s)" % (repr(self.body), repr(self.final))
13084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Tuple(Node):
13104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, nodes, lineno=None):
13114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.nodes = nodes
13124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
13134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
13154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(flatten(self.nodes))
13164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
13184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
13194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.extend(flatten_nodes(self.nodes))
13204710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
13214710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13224710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
13234710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Tuple(%s)" % (repr(self.nodes),)
13244710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13254710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass UnaryAdd(Node):
13264710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, lineno=None):
13274710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
13284710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
13294710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13304710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
13314710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
13324710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13334710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
13344710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
13354710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13364710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
13374710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "UnaryAdd(%s)" % (repr(self.expr),)
13384710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13394710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass UnarySub(Node):
13404710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, lineno=None):
13414710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
13424710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
13434710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13444710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
13454710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
13464710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13474710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
13484710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.expr,
13494710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13504710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
13514710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "UnarySub(%s)" % (repr(self.expr),)
13524710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13534710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass While(Node):
13544710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, test, body, else_, lineno=None):
13554710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.test = test
13564710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.body = body
13574710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.else_ = else_
13584710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
13594710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13604710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
13614710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
13624710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.test)
13634710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.body)
13644710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.else_)
13654710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
13664710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13674710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
13684710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
13694710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.test)
13704710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.body)
13714710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.else_ is not None:
13724710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.else_)
13734710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
13744710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13754710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
13764710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "While(%s, %s, %s)" % (repr(self.test), repr(self.body), repr(self.else_))
13774710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13784710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass With(Node):
13794710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, expr, vars, body, lineno=None):
13804710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.expr = expr
13814710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.vars = vars
13824710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.body = body
13834710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
13844710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13854710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
13864710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children = []
13874710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.expr)
13884710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.vars)
13894710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        children.append(self.body)
13904710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(children)
13914710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
13924710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
13934710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist = []
13944710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.expr)
13954710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        if self.vars is not None:
13964710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm            nodelist.append(self.vars)
13974710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodelist.append(self.body)
13984710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return tuple(nodelist)
13994710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
14004710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
14014710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "With(%s, %s, %s)" % (repr(self.expr), repr(self.vars), repr(self.body))
14024710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
14034710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmclass Yield(Node):
14044710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __init__(self, value, lineno=None):
14054710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.value = value
14064710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        self.lineno = lineno
14074710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
14084710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildren(self):
14094710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.value,
14104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
14114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def getChildNodes(self):
14124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return self.value,
14134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
14144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    def __repr__(self):
14154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        return "Yield(%s)" % (repr(self.value),)
14164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm
14174710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfor name, obj in globals().items():
14184710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm    if isinstance(obj, type) and issubclass(obj, Node):
14194710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm        nodes[name.lower()] = obj
1420