Exemplo n.º 1
0
import re
from Automata import Automata
from anytree.dotexport import DotExporter


def nodenamefunc(node):
    return '%s:%s' % (node.name, node.nodeId)


def nodeattrfunc(node):
    return 'label="%s"' % (node.name)


er = "(ab|r)*123|(otro)a*"
test = "([a-z]*|[0-9]+)|(0*1+)"
#er = "(1|[a-z])|z?y"
automata = Automata(er)
DotExporter(automata.raiz,
            nodenamefunc=nodenamefunc,
            nodeattrfunc=nodeattrfunc).to_picture("arbol.png")
automata.dibujarAFD()

print(automata.er)
print(automata.tokens)