Parser Architektur - paule32/dBase2Many GitHub Wiki

Parser-Architektur

Komponenten

  • Lexer
  • Parser
  • Visitor oder Listener
  • Sprach-Fassade / Frontend

Verzeichnislayout

grammars/
β”œβ”€β”€ dbase/
β”œβ”€β”€ pascal/
β”œβ”€β”€ cc/
└── lisp/

parse/
β”œβ”€β”€ dbase/
β”œβ”€β”€ pascal/
β”œβ”€β”€ cc/
└── lisp/

Ablauf

  1. Datei laden
  2. Lexer erzeugen
  3. TokenStream erzeugen
  4. Parser starten
  5. Parse Tree erzeugen
  6. Tree mit Visitor oder Listener auswerten
  7. interne ReprΓ€sentation an Laufzeit oder Compiler ΓΌbergeben

Importbeispiel

from parse.dBaseLexer import dBaseLexer
from parse.dBaseParser import dBaseParser
from parse.dBaseParserVisitor import dBaseParserVisitor

Empfehlung

Die .g4-Dateien getrennt von den generierten Python-Dateien aufbewahren.