Mit Case würe ich das nie und nimmer machen: Viel zu umständlich und zu unübersichtlich.
Ich mache das so:
1. Eingabealphabet definieren
2. Zustandsgraph aufzeichnen
3. Zustände durchnummerieren.
4. Zustandsübergangstabelle erstellen (Spalten = Alphabet, Zeilen = Zustände aus (3))
Delphi-Quellcode:
Procedure DEA (aInput : TAlphabetStream);
Begin
State := START;
While Not (State in [ERROR, STOP]) Do
State := DEA[State, NextToken(aInput)];
ProcessState(State);
End;
If State = ERROR Then
ShowError
else
Success;
End;
Damit lassen sich dann alle DEAs dieser Welt abarbeiten.