Tag. Weiss jemand, wo es eine Step by Step Anleitung zum Programmieren eines Parsers gibt? Alternativ würde mir auch eine ausführliche Beschreinbung der Funtionsweise eines P. ausreichen.
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Hi!
Was für ein Parser soll's denn sein?
Ein Parser für Textadventures vielleicht. :)
Da hab' ich selbst mal was zustande gebracht zu 64er-Zeiten und da gab's zwei hervorragende Sonderhefte des 64er-Magazins zu, die ich sogar noch im Schrank habe... ;-)
Ok, jetzt mal etwas ernster.
Nach meiner ureigenenen Interpretation ist ein Parser (nur) der Teil eines Compilers, der die einzelnen Wörter aus dem Quelltext extrahiert und in Tolkens (ich hoffe, das schreibt man so) umwandelt.
Er sucht Befehlswörter, Kommandos (das können auch einfache Rechenoperatoren sein) und erkennt Konstanten (numerische Werte oder Zeichenketten).
Dabei filtert er Syntax-Fehler aus (z.B. "Unbekanntes Wort/Befehl gefunden" oder "Fehler bei Wandlung einer Zahl"). Aus jedem Wort das er erkennt macht er ein Tolken.
Im Einfachsten Fall arbeitet er Wortweise und reicht die gewandelten Tolkens an den Semantik-Check weiter. Eine Zeilenbasierte Vorgehensweise wäre auch denkbar, dann werden mehrere Tolkens in einem Rutsch weitergegeben.
In dieser Stufe wird dann getestet, ob die "Reihenfolge" der Tolkens einen Sinn ergibt und entsprechende Fehler ausgegeben (z.B. "IF ohne THEN" oder "Eine Variable wird erwartet").
Dann kommt der eigentliche Compiler und wandelt die Tolkens in ausführbaren Code um (das kann natürlich ein PCode sein). An dieser Stelle kann man natürlich auch direkt den Interpreter ansprechen.
Mit dieser Vorgenhensweise bin ich bisher immer klar gekommen, wenn es darum ging, Anweisungsfolgen aus einer Textdatei zu lesen und in Programmanweisungen umzusetzen. Ob man damit nun einen Roboter steuert oder einen Drachen bekämpft ist eigentlich egal. ;-)
Bis denn
Andreas