Moin Nils,
Zitat von
Nils_13:
wie könnte man dann das Problem lösen ?
Indem Du die Routine umbaust, mit der Du Deine Token erkennst
Üblicherweise wird ein Token möglichst lang erzeugt, dass heisst:
Solange für einen erkannten möglichen Tokentyp Zeichen folgen, gehören die mit zum aktuellen Token.
Beispiel: Bezeichner.
Wenn für diese die Regel gilt:
Sie müssen mit _ oder Buchstabe anfangen, und dürfen ansonsten _, Buchstaben oder Ziffern enthalten, so müsste man beim Erkennen eines _ oder Buchstaben anschliessend alle Zeichen als Tokenattribut übernehmen, bis ein Zeichen ungleich _, Buchstabe, Ziffer auftritt.
Ein ähnliches Vorgehen gilt dann auch bei Zahlen.
(Annahmen:
Eine Zahl muss mit einer Ziffer beginnen oder enden, obwohl auch ein . bzw. , am Anfang oder Ende denkbar wäre.
Es werden keine Exponenten verwendet)
Man trifft auf eine Ziffer:
Jetzt wird solange durchgegangen, wie man eine Ziffer, ein . oder ein , findet.
Bei . oder , normalisiert man dass jetzt auf, z.B., .
Anschliessend geht man durch, bis man auf ein Zeichen ungleich Ziffer stösst.
Solche Sachen werden oft mit Hilfe von
Zustandsautomaten (bzw. DEA =
Determinierender Endlicher Automat) gelöst.
Klingt komplizierter als es ist.