Danke für die Mühe.
So in etwa meinte ich das.
Wäre toll, wenn jemand von "der anderen Seite" seine Ideen zu Papier (Bildschirm) bringen könnte.
Meine Ideen, für "eure" Lösung:
1.
Delphi-Quellcode:
constructor Zustand1.Create;
begin
end;
function Zustand1.GetNextState(const token: CHAR): state;
begin
case token of
...
'0'..'9': begin
...
GetNextState := Zustand2.Create;
end;
end;
Self.Destroy;
end;
2.
Delphi-Quellcode:
constructor Zustand1.Create;
begin
//wir befinden uns bspw. in Zustand1
Self.NextStateList[Digit] := Zustate2.Create;
Self.NextStateList[Letters] := Zustand3.Create;
end;
function Zustand1.GetNext(const token: symbol): state;
begin
GetNext := NextStateList[token]
end;
Ist eine davon "eure"
OOP-Lösung?
Ich find (wenn es eren Ideen entspricht) beide nicht elegant.