-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathast.py
34 lines (26 loc) · 845 Bytes
/
ast.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Node():
def __init__(self, value, level = 0):
self.children = []
self.value = value
self.level = level
def addChild(self, child):
self.children.append(child)
def __repr__(self):
return f'Level: {self.level}, value: {self.value}'
class Tree():
def __init__(self):
self.start = None
self.printedTree = ''
def setStart(self, start):
self.start = start
def printNodes(self, node):
tabs = '--'
self.printedTree += f'[{node.level}]{tabs*node.level}{node.value}:\n'
for child in node.children:
self.printNodes(child)
return self.printedTree
def __repr__(self):
if self.start:
return self.printNodes(self.start)
else:
return 'There is not any nodes on this tree.'