filipg/amu_automata_2011 — Issue #460: Zaimplementować klasę StraightToDeterministicAutomatonRegexp
Author: filipg
Created: 2011-12-14 09:18:55+00:00
State: open

Reprezentująca wyrażenie regularne, przy czym należy zaimplementować algorytm bezpośredniej konwersji do automatu deterministycznego (bez przechodzenia przez automat niedeterministyczny), zob. Aho, Sethi, Ullman, "Kompilatory. Reguły, metody i narzędzia", WN-T 2002, s. 128-134.

Klasa powinna implementować interfejs `Acceptor` i powinna mieć konstruktor jednoargumentowy (argumentem będzie String z wyrażeniem regularnym). Należy uwzględnić operatory konkatenacji (`ConcatenationOperator`, zadanie #319), alternatywy (`|`, `AlternativeOperator`, zadanie #320), domknięcia Kleene'ego (`*`, `KleeneStarOperator, zadanie #312), nawiasy okrągłe (`DoNothingOperator`, zadanie #324) oraz odwrócony ukośnik jako znak ucieczki.

Do wymienionych operatorów należy stworzyć odpowiedniego zarządcę operatorów (instancję klasy z zadania #348) i użyć rozwiązania zadania #352.