Descriere Algoritm - ThisNameWasTaken/LFA GitHub Wiki

Constructorul clasei Automat primeste o stare initiala, o un vector de stari finale si un obiect, de tip JSON, care prezinta tranzitiile de la o stare la alta printr-un anumit pas. O tranzitie este de forma "stare_de_baza" : { "pas" : ["stare_1", "stare_2", ... ] }.

Algoritmul cauta un "drum" catre o stare finala folosind un algoritm recursiv. Incepe de la starea initiala si, urmarind pasii, trece la urmatoarea stare folosindu-se de obiectul tranzitii. In momentul in care se ajunge intr-o stare finala algoritmul se opreste. Daca s-a trecut prin toate starile, prin care poate ajunge de la starea initiala, si nu s-a ajuns intr-o stare finala atunci cuvantul dat nu apartine limbajlului cunoscut de automat.