Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#3

AW: Parser - billige Lösung

  Alt 3. Apr 2012, 13:24
@bernhard_LA

Das ist nicht so kompliziert wie es sich anhört. Ich habe inzwischen mehrere kleine Scriptsprachen geschrieben, und zufällig arbeite ich momentan wieder an einer.

Zuerst muß man sich bewußt werden was man alles damit machen will. Was ist nötig, was unnötig. Meine erste Scriptsprache die ich für eine Anwendung schrieb konnte ich sogar als einen kleinen Basicinterpreter verwenden. Was ich jetzt mache ist dagegen sehr simpel, da es sich an Anwender richtet die auch ohne Programmierkenntnisse programmieren können sollen. Aber egal für was du dich entscheidest, es ist einfacher als man denkt.

Hier ein sehr einfaches Konzept: Variablen beginnen mit einem $, Bezeichner für Funktionen und Variablen dürfen nur aus A-Z, a-z, _ und 0-9 Zeichen bestehen (und Kommentare nicht vergessen). Am Anfang ignorierst du die Leerzeichen und liest das erste Wort bis zu einem Sonderzeichen oder Ende. Sehr einfach, schon hast du den Befehl oder Variable. Als nächstes eine Funktion schreiben die ein Parameter ausliest. Das ist etwas komplexer, denn du mußt erkennen ob es eine Variable ist oder ein Wert, und wenn Wert, String oder Zahl. Das wäre einfach, denn man könnte bis zu einem Komma lesen, aber ein String kann auch ein Komma enthalten. Also eine Funktion schreiben die einen String in Anführungzeichen liest. Aber all das kann man sich sparen wenn du bereit bist paar Abstriche hinzunehmen. TStrings DelimiterText. Mach Komma zum Delimiter und schon hast du mit einer Zeile die Parameter als Liste. Wie gesagt, das funktioniert, man muß dann aber die Eigenarten von DelimiterText akzeptieren. Ich hab da was eigenes geschrieben, aber gehen, geht es. Nur wie gesagt, mit Vorsicht.

Also, ganz einfach: zuerst das erste Wort auslesen das den regeln entspricht, dann die Parameter über DelimiterText zerlegen. Für etwas simpeles reicht es. Und Schleifen sind auch kein so großes Problem.
  Mit Zitat antworten Zitat