Hallo,
ich sitze gerade an einen Eigenbau-Mini-Templating-System das erweitert werden soll. Ganz naiv dachte ich daran das System zuerst auf ein saubere Grammatik umzustellen bevor ich es erweitere. Mein erster Ansatz dafür war [Marpa::R2], was einen sehr guten Eindruck macht.
Beim Ausprobieren lief ich aber gleich in eine Sackgasse. Im Legacy-Code haben die Anweisungen eindeutige IDs. Hier ein abstraktes Beispiel:
# valid:
START(id123)
START(id456)END(id456)
END(id123)
#invalid
START(id123)
START(id456)END(id123)
END(id456)
Kann das Marpa out of the Box in der Definition der Grammatik oder muss man da mit Events hantieren?
Mit Regexen wäre die Sache trivial mit Backreferenzen abbildbar, aber bei Marpa habe ich keine Backreferenzen gesehen.
Als Fallback würde ich wohl bei Marpa bleiben, aber die IDs außerhalb von Marpa überprüfen.
Viele Grüße,
Bernhard