Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.106 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Matheparser: Schleifenproblem bei Kommata

  Alt 30. Jul 2007, 10:24
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 Bei Google suchenZustandsautomaten (bzw. DEA = Bei Google suchenDeterminierender Endlicher Automat) gelöst.
Klingt komplizierter als es ist.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat