diff options
Diffstat (limited to 'compilador/arbol.py')
-rw-r--r-- | compilador/arbol.py | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/compilador/arbol.py b/compilador/arbol.py deleted file mode 100644 index 1ca2cd9..0000000 --- a/compilador/arbol.py +++ /dev/null @@ -1,48 +0,0 @@ -import uuid, json -import graphviz as gv -from pprint import pformat - -class Nodo: - def __init__(self, dato = None): - self.dato = dato - self.hijos = [] - - def print(self, n = 0): - s = ' ' * n + 'Nodo:' + "\n" - s += ' ' * n + "dato = " + str(self.dato) + "\n" - s += ' ' * n + "hijos =\n" - for h in self.hijos: - s += h.print(n + 1) - s += "\n" - return s - - def render(self, dot: gv.Digraph, parent: str): - name = uuid.uuid1().hex - fdato = pformat(self.dato, indent=2).replace('\n', '\l') - dot.node(name, fdato) - if parent: - dot.edge(parent, name) - - for h in self.hijos: - h.render(dot, name) - - def __str__(self): - return self.print() - - -class Arbol: - def __init__(self, raiz: Nodo = Nodo()): - self.raiz = raiz - - def render(self, filename, view = False): - dot = gv.Digraph() - dot.attr(rankdir='LR') - dot.attr('node', fontname='monospace') - dot.attr('node', shape='box') - self.raiz.render(dot, None) - dot.render(filename, view = view) - - def __str__(self): - if self.raiz: - return str(self.raiz) - return "None" |