Compiler für eine Makrosprache
Rike-Benjamin Schuppner
- php
Hallo.
Ich wollte für PHP eine Art Makrosprachen-Compiler entwerfen. Das Ganze soll so funktionieren, dass man eine LaTeX-artige Syntax als Eingabe benutzt und der Compiler dann HTML-Output generiert. Im Gegensatz zu den gängigen Beschreibungssprachen diverser Internetforen möchte ich jedoch rekursive Verschachtelung erlauben, weswegen einfache substitute-Funktionen nicht funktionieren. (Darüberhinaus soll der Compiler so schlau sein und den Code HTML 4 strict validierbar machen.)
Als Interpreter habe ich das zwar schon geschafft [ http://test.debilski.de/forum/makrotest.php ], jedoch ist dem Interpreter noch nicht möglich, die Ausgabe zu optimieren und Fehler im Eingabecode zu erkennen und zu beseitigen, (Fehler werden momentan nur einfach umgangen.) weil es momentan so programmiert ist, dass der Compiler erst weiß, was er zu tun hat, nachdem er ein Token gefunden hat. (Idealerweise müsste der Compiler ja die Token erwarten.)
Kennt jemand gute Hilfen für so etwas speziell für PHP zurechtgeschnitten? Oder vielleicht schon "durchprogrammierte" Beispiele? Die Quelltexte zu den diversen Webboards, die ich bis jetzt durchgesehen habe sind in Sachen Makroersetung nicht berauschend gewesen, aber vielleicht kennt ja jemand ein besseres Beispiel.
Grüße
rbs
Hey rbs,
Kennt jemand gute Hilfen für so etwas speziell für PHP zurechtgeschnitten? Oder vielleicht schon "durchprogrammierte" Beispiele? Die Quelltexte zu den diversen Webboards, die ich bis jetzt durchgesehen habe sind in Sachen Makroersetung nicht berauschend gewesen, aber vielleicht kennt ja jemand ein besseres Beispiel.
Sieh dir mal "atox" an, http://atox.sf.net/. Als Anleitung vielleicht
nicht unbedingt geeignet (Python), aber womöglich kannst du es auch verwenden
wie's is, und sparst dir 'ne Menge Arbeit. (Ich entsinne mich dunkel, daß
auch ein LaTex-Beispiel dabei war.)
MsF,
milky
Hallo milky
Sieh dir mal "atox" an, http://atox.sf.net/. Als Anleitung vielleicht
nicht unbedingt geeignet (Python), aber womöglich kannst du es auch verwenden
wie's is, und sparst dir 'ne Menge Arbeit. (Ich entsinne mich dunkel, daß
auch ein LaTex-Beispiel dabei war.)
Um das direkt zu verwenden müsste ich es ja irgendwie auf dem Webserver zum Laufen kriegen. Mal sehen, vielleicht hilft mir der Quellcode ja ein wenig; aber höchstwahrscheinlich ist das Programm an sich zu komplex (weil es ja für beliebige Sprachen funktioniert und keine festen Token hat).
Allerdings gab mir die Hilfe schon ein paar Tipps für mögliche Erweiterungen meiner Sprache... Danke
(Wenn alles nicht hilft bleibe ich bei meiner Interpretierenden Version, dann soll sich der Anwender eben bemühen konform zu schreiben!)
Grüße
rbs