AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Lexer für Scriptsprache
Thema durchsuchen
Ansicht
Themen-Optionen

Lexer für Scriptsprache

Ein Thema von guidok · begonnen am 8. Jul 2008
Antwort Antwort
guidok
Registriert seit: 28. Jun 2007
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, 40x aufgerufen)
 
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz