DSL statt XML

Das Verfahren in “XML als CodeP” ist toll. Aber es hat einen grossen Nachteil: Das XML wird komplizierter, je umfangreicher die Funktionen sind. Geht das eleganter, ausdrucksstärker, ohne diese vielen spitzen Klammern und “void” und “object” und “dieses ganze Zeugs”P

Es wäre prima, wenn es nur eine Textdatei wie diese hier braucht. Sie zeigt ohne überflüssigen Schnickschnack auf, welcher Befehl mit welchem Parameter aufzurufen ist. Das ist vieeeel übersichtlicher als das XML. Was ist zu tun?

Ich schreibe eine Grammatik für antlr3 und zwar diese hier. antlr erzeugt daraus Java-Klassen. Eine davon, der Parser, hat eine Main-Methoden und bekommt beim Aufruf den Dateinamen der Textdatei. Fertig.

Fertig? Noch lange nicht. Denn so, wie ich es hier zeige, fehlen die Implementierungen, Fehlerbehandlung, Konfigurationen etcpp. Aber das Prinzip sollte deutlich geworden sein: Ich erstelle eine “domain specific language”.

Nachteil? Für jeden neuen Befehl muss ich die Grammatik erweitern und mit antlr den Lexer und Parser neu zusammensetzen. Ist es das wert?

Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.