Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: Parser: Operatoren

  Alt 13. Apr 2012, 09:37
Bei Pascal z.B. betrifft dies den '.' (wie in 7.1) und '..' (wie in [1..2]).
Beim rekursiven parsen in einen Grammatikbaum (Term von aussen nach innen) weiss der Parser, dass er eine eckige Klammer betreten hat wenn er deren Inhalt weiter zerlegt, und kann entsprechend andere Regeln anwenden, die in diesem Fall z.B. das Look-Ahead unnötig machen (keine Floats in Mengen zulässig).
Die gleiche Vorgehensweise erlaubt auch das Behandeln von "-". Nehme ich den Term "2--X" finde ich zuerst das erste "-", und gehe in die Rekursion mit "2" und "-X" als Restterme. Schalte ich meinem Tokenizer ein einfaches if TermString[1] = '-then TermString := '0'+TermString; vor, kann ich das Vorzeichen wie ein ganz normales Minus behandeln.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat