Einzelnen Beitrag anzeigen

guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#1

Lexer für Scriptsprache

  Alt 8. Jul 2008, 13:11
Hallo zusammen!

Ich möchte mal einen Lexer vorstellen, den ich für eine kleine Scriptsprache verwenden möchte. Die Frage nach dem Parsen von mathematischen Formeln taucht ja immer mal auf und vielleicht interessiert es ja jemanden, wie so etwas realisiert werden könnte.

Bei der Unit handelt es sich nur um einen Lexer, d.h. ein Script wird einfach in einzelne Token zerlegt, außerdem muss die Erkennung sicher noch etwas erweitert werden. Die Anpassung an eigene Vorstellungen ist recht einfach, ich wollte es ja auch für mich so einfach wie möglich halten.

Der Aufruf aus dem (noch nicht existierenden) Parser beschränkt sich auf eine Zuweisung des zu zerlegenden Strings und dem Lesen der Token.

Delphi-Quellcode:
begin
  memOutput.Lines.Clear;
  for i := 0 to memScript.Lines.Count - 1 do
  begin
    Lexer.LexStr := memScript.Lines[i]; //Zuweisung des Strings aus dem Script
    Lexer.GetToken(Token); //Lesen des ersten Tokens
    while Token.Kind <> tkUnknown do
    begin
      memOutput.Lines.Add(Token.Value);
      Lexer.GetToken(Token); //Lesen der weiteren Token
    end;
  end;
end;
Edit: Ach ja, es handelt sich hier einfach nur darum, so etwas einmal auszuprobieren. Es steckt kein tieferer Sinn dahinter...
Angehängte Dateien
Dateityp: pas ulexer_986.pas (6,9 KB, 43x aufgerufen)
  Mit Zitat antworten Zitat