MCPcopy
hub / github.com/rocky/python-uncompyle6 / SyntaxTree

Class SyntaxTree

uncompyle6/parsers/treenode.py:8–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6
7
8class SyntaxTree(spark_AST):
9 def __init__(self, *args, transformed_by=None, **kwargs):
10 self.transformed_by = transformed_by
11 super(SyntaxTree, self).__init__(*args, **kwargs)
12
13 def isNone(self):
14 """An SyntaxTree None token. We can't use regular list comparisons
15 because SyntaxTree token offsets might be different"""
16 return len(self.data) == 1 and NoneToken == self.data[0]
17
18 def __repr__(self):
19 return self.__repr1__("", None)
20
21 def __repr1__(self, indent, sibNum=None):
22 rv = str(self.kind)
23 if sibNum is not None:
24 rv = "%2d. %s" % (sibNum, rv)
25 enumerate_children = False
26 if len(self) > 1:
27 rv += " (%d)" % (len(self))
28 enumerate_children = True
29 if self.transformed_by is not None:
30 if self.transformed_by is True:
31 rv += " (transformed)"
32 else:
33 rv += " (transformed by %s)" % self.transformed_by
34 rv = indent + rv
35 indent += " "
36 i = 0
37 for node in self:
38 if hasattr(node, "__repr1__"):
39 if enumerate_children:
40 child = node.__repr1__(indent, i)
41 else:
42 child = node.__repr1__(indent, None)
43 else:
44 inst = node.format(line_prefix="")
45 if inst.startswith("\n"):
46 # Nuke leading \n
47 inst = inst[1:]
48 if enumerate_children:
49 child = indent + "%2d. %s" % (i, inst)
50 else:
51 child = indent + inst
52 pass
53 rv += "\n" + child
54 i += 1
55 return rv
56
57 def first_child(self):
58 if len(self) > 0:
59 child = self[0]
60 if not isinstance(child, SyntaxTree):
61 return child
62 return child.first_child()
63 return self
64
65 def last_child(self):

Callers 14

is_return_noneMethod · 0.90
build_classMethod · 0.90
n_yieldMethod · 0.90
n_returnMethod · 0.90
n_return_if_stmtMethod · 0.90
n_yieldMethod · 0.90
customize_for_versionFunction · 0.90
consts.pyFile · 0.90
n_mkfuncMethod · 0.90
n_ifstmtMethod · 0.90
n_ifelsestmtMethod · 0.90
n_import_from37Method · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected