Registriert seit: 15. Nov 2004
2.647 Beiträge
|
Unerwünschte Zeichen ?
28. Sep 2010, 16:26
Hi,
ich muss eine Syntaxanalyse durchführen von einer ganz einfach Sprache. Das geht alles super, habe auf dem Gebiet ja auch schon etwas Erfahrung und weiß was man so falsch machen kann. Doch eins ist fatal: Der Lexer generiert mir seltsamerweise leere Zeilen. Es geht nicht darum dass diese leeren Zeilen schlecht sind weil sie nicht perfekt sind, sondern es geht darum dass der Parser deshalb anschließend durcheinander kommt. Denn ich will mit leeren Zeilen nichts mehr zu tun haben, da sie nur Ärger machen und sowieso keinen Sinn haben (der Lexer weist den Tokens die Position im Originaltext zu um am Ende einen Fehler genau positionieren zu können - daher sind leere Zeilen auf alle Fälle sinnlos und fehleranfällig sowieso). Ich habe zur einfachen Übersicht ein paar Grundfunktionen, zum Beispiel eine die mir die Tokens am Ende zu einem Gesamttokenarray hinzufügt. Diese Prozedur prüft natürlich auch zur Sicherheit nochmal ob denn Trim(<TokenString>) = '' ist. Doch scheinbar kommt da irgendetwas durch, was kein '' aber dafür unsichtbar ist. Ich habe stupide schon über eine Schleife geschaut, wie viele Zeichen es denn gibt die NICHT zum zulässigen Alphabet gehören. Es waren genauso viele wie ich leere Zeilen habe. Also gibt es irgendwo ein Zeichen, welches meine if-Abfrage austrickst. Habt Ihr eine Idee, welches Zeichen das sein kann und wie man unerwünschte und irrelevante Zeichen in dem Kontext einfach los wird ? Bin da etwas am verzweifeln, zumal ich nicht mal rauskriege welches Zeichen mir da einen Streich spielt.
Gruß,
Nils
|