# XPand in XText 2.0



## Tomate_Salat (5. Okt 2011)

N'abend,

Ich schaue mir gerade XText2.0 näher an. Mithilfe eines Tutorials bekam ichs ganz gut hin, eine DSL mittels XTend in Java-Code zu interpretieren. Ohne das Tutorial macht mir XTend ein klein wenig Probleme. Von anderen Seiten habe ich gesehen, dass in XText 1.* wohl XPand eingesetzt worden ist. Das gefällt mir eigentl. besser vom Aufbau her. Ist es möglich, in XText2.0 XPand anstatt XTend zu nutzen? Wenn:


> ja ist es


dann gilt natürlich die Frage: wie ;-)


----------



## Wildcard (5. Okt 2011)

XPand hat ja erstmal nicht XText zu tun, ausser das XText intern XPand verwendet.
Installier dir doch einfach mal ein altes Eclipse (3.6) erstelle dort ein Xtext Projekt und lass ein Generator Projekt erstellen. Das Generator Projekt arbeitet mit XPand, das solltest du also so übertragen können.
Übrigens, je nachdem wie deine DSL aufgebaut ist, könnte auch XBase für dich interessant sein.
Eine Xtext Meta Programmiersprache mit Java Anbindung, Expression Syntax, Java Interpreter, Java Compiler,...
Ist dazu gedacht in eigene DSLs zu integrieren um viel Funktionalität geschenkt zu bekommen.


----------



## Tomate_Salat (5. Okt 2011)

XBase werde ich mir mal bei Gelegenheit anschauen. Konnte mich mitlerweile aber mit XTent mehr oder weniger gut anfreunden und  bekomme eine eigene DSL mitlerweile ohne Hilfe hin .


----------



## Tomate_Salat (6. Okt 2011)

Gibt es eigentl. eine Möglichkeit, seine DSL zu testen, ohne jedes mal eine neue Eclipse-Anwendung zu starten?


----------



## Wildcard (6. Okt 2011)

Hängt davon ab was du testen möchtest. Der DSL Editor ist logischerweise eine Eclipse Anwendung, aber das heißt ja nicht, das du keine Unit Tests schreiben kannst, oder anderweitig den Parser Standalone verwendest.


----------



## Tomate_Salat (6. Okt 2011)

Nein, ich rede nicht von Unit-tests. Ich rede davon, dass ich die Eclipse-Awnendung atm immer neu starte, wenn ich Änderungen in der Grammatik+XTend testen will.


----------



## Wildcard (8. Okt 2011)

Da es sich nicht um einen dynamischen Interpreter, sondern generierten Code handelt, wird dir wohl nichts anderes übrigbleiben.
Du kannst allerdings Ausdrücke auch direkt testen in dem du entweder Unit Tests schreibst, oder die von Xtext erzeugte ANTLR Grammatik in Antlr Works lädst.


----------



## Karsten Thoms (13. Apr 2012)

Um die Grammatik zu testen braucht man keine Eclipse Instanz zu starten. Xtext ist strikt unterteilt in einen Runtime und einen UI Teil. Alles was Runtime ist kann man auch Unittesten. Im Xtext Repository findet man Tonnen von Tests, die genau das machen.

Eine weitere gute Möglichkeit ist das Framework "xtext-utils unittesting".

Es gibt noch weitere Ansätze, schaut euch mal die Slides von Moritz Eysholdt an (Slideshare).

Grüße,
~Karsten


----------

