●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●...
Agenda

 Xbase
 Anwendungsfälle
 Xbase im Domain Model Example

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●...
Xbase – Am Beispiel des Domain Model Examples
Was ist Xbase?

“Xbase is a partial programming language implemented in Xtex...
Xbase – Am Beispiel des Domain Model Examples
Generelle Bestandteile von Xbase

Expression-Grammatik

•

JVMTypes

•

Exte...
Xbase – Am Beispiel des Domain Model Examples
Xbase im Detail (1)

•

Xbase.xtext

•

Typen: Arrays, einfache Typ-Referenz...
Xbase – Am Beispiel des Domain Model Examples
Xbase im Detail (2)

•

Expressions (ctd.)
•
•

Switch Expression (switch, c...
Xbase – Am Beispiel des Domain Model Examples

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●...
Xbase – Am Beispiel des Domain Model Examples
Xbase Compiler

Standard-Generator für Xbase Expressions, der Java-Code gene...
Xbase – Am Beispiel des Domain Model Examples
Eigenschaften von Xbase

Runs on the JVM

•

Compiles to Java

•

Statically...
Xbase – Am Beispiel des Domain Model Examples
Abstrakte Anwendungsfälle

extends

•

implements

•

invokes

•

maps to

•...
Xbase – Am Beispiel des Domain Model Examples
Konkretere Anwendungsfälle

Integration/Verwebung mit bestehendem Code

•

M...
Xbase – Am Beispiel des Domain Model Examples
Model inferrer & Type inferrer

•

Model inferrer
•

JDT Integration

•

Tra...
Xbase – Am Beispiel des Domain Model Examples
Model inferrer / Generator / Builder Participant

•

Ableiten von (Teil-)Art...
Xbase – Am Beispiel des Domain Model Examples
Wann sollte man Xbase/JVMTypes verwenden, wann nicht?

•

sich über die Ziel...
Xbase – Am Beispiel des Domain Model Examples
Änderungen durch Xbase

•

Grammatik-Definition
•

grammar … with org.eclips...
Xbase – Am Beispiel des Domain Model Examples

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●...
Xbase – Am Beispiel des Domain Model Examples

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●...
Xbase – Am Beispiel des Domain Model Examples

●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●...
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
...
Xbase – Am Beispiel des Domain Model Examples
Erweiterungen für das Domain Model Example

•

DSL definieren, um das Mappin...
Xbase – Am Beispiel des Domain Model Examples
Links: Dokumentation & Blogs

Xbase - A new programming language?

•

Xbase ...
Xbase – Am Beispiel des Domain Model Examples
Links: Xbase Source Code

Xbase.xtext

•

JvmModelGenerator.xtend

•

XbaseC...
Xbase – Am Beispiel des Domain Model Examples
Links: Xbase nutzende Projekte

Xtend (see Xtend.xtext)

•

Sigasi - VHDL ed...
Xbase – Am Beispiel des Domain Model Examples
Links: Domain Model Example

•

Example auf dem aktuellen Juno Stand: File -...
Nächste SlideShare
Wird geladen in …5
×

Xbase Am Beispiel des Domain Model Examples

1.269 Aufrufe

Veröffentlicht am

Xbase is a partial programming language implemented in Xtext and is meant to be embedded and xtended within other programming languages and domain-specific languages (DSL) written in Xtext.

This presentation provides hooks how to starting learning and using Xbase.

Please not that this presentation (date: 2012-11-23) is based on Xtext/Xbase 2.3.1 and thus uses the old API of Xbase.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.269
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
7
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Xbase Am Beispiel des Domain Model Examples

  1. 1. ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Am Beispiel des Domain Model Examples © itemis AG
  2. 2. Agenda  Xbase  Anwendungsfälle  Xbase im Domain Model Example ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●  Links © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 2
  3. 3. Xbase – Am Beispiel des Domain Model Examples Was ist Xbase? “Xbase is a partial programming language implemented in Xtext and is meant to be embedded and xtended within other programming languages and domain-specific languages (DSL) written in Xtext.” ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Quelle: Sven Efftinge - Xbase - A new programming language? © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 3
  4. 4. Xbase – Am Beispiel des Domain Model Examples Generelle Bestandteile von Xbase Expression-Grammatik • JVMTypes • Extensions (Bibliothek von Funktionen, die für Typen bereitgestellt werden) • Xbase Compiler (zu Java Code) / Xbase Interpreter ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4
  5. 5. Xbase – Am Beispiel des Domain Model Examples Xbase im Detail (1) • Xbase.xtext • Typen: Arrays, einfache Typ-Referenzen, Funktionstypen (Lambda-Ausdrücke), parametrisierte TypReferenzen, Java-Primitive -> Xbase implementiert Java Typsystem und ist konform zur Java Lang Spec • Expressions (1) • Literale: String, Nummer (entspricht Integer), Boolean, Null, Typ (entspricht .class) • Operatoren: fest eingebaute boolsche / arithmetische Operatoren sowie with-Operator für Lambda • binär: +=, ||, &&, ==, !=, <, >, <=, >=, ->, .., =>, <<, >>, <<<, >>>, <>, ?:, <=>, +, -, *, /, %, ** • unär: !, - Zuweisungen (Assignments) • Feature Calls (property access, null safe feature Call, static feature call) • Constructor Call • Lambda Ausdrücke (aka Closures): z.B. myList.findFirst([ e | e.name==null ]) ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 5
  6. 6. Xbase – Am Beispiel des Domain Model Examples Xbase im Detail (2) • Expressions (ctd.) • • Switch Expression (switch, case) • Variable Declarations (nur in Blocks erlaubt) • Blocks, entspricht Container für imperative Code-Sequenzen • For Loop • While Loop • Do-While Loop • Return Expression • Throwing Exceptions • try-catch-finally expression Implizite Variablen 'this‘ und 'it‘: Referenz auf den aktuellen Kontext, it kann auch innerhalb von Funktionen verwendet werden ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • If Expression (if, else if, else) © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 6
  7. 7. Xbase – Am Beispiel des Domain Model Examples ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Xbase Extensions © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 7
  8. 8. Xbase – Am Beispiel des Domain Model Examples Xbase Compiler Standard-Generator für Xbase Expressions, der Java-Code generiert • wie man Xbase erweitert, und was man alles anpassen muss, ist hier beschrieben: Extending Xbase • Expressions können meist beliebig miteinander und beliebig tief kombiniert und verschachtelt sein: ein Expressions Compiler sollte unabhängig davon in der Lage sein, validen Code zu generieren ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 8
  9. 9. Xbase – Am Beispiel des Domain Model Examples Eigenschaften von Xbase Runs on the JVM • Compiles to Java • Statically Typed • Full Java Generics • No built-in types • Closures • Type Inference • Operator Overloading • Simplicity over Syntactical Flexibility • Everything is an Expression ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 9
  10. 10. Xbase – Am Beispiel des Domain Model Examples Abstrakte Anwendungsfälle extends • implements • invokes • maps to • model instances/assigments (with type checks) • invariants/boolean expressions • decisions/switch/cases • calculation ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 10
  11. 11. Xbase – Am Beispiel des Domain Model Examples Konkretere Anwendungsfälle Integration/Verwebung mit bestehendem Code • Model-Checks durch Typsystem(e) • durch Typsystem unterstützte Code-Generierung (Expressions an mehreren Stellen) ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 11
  12. 12. Xbase – Am Beispiel des Domain Model Examples Model inferrer & Type inferrer • Model inferrer • JDT Integration • Transparenz Java/DSL • Tracing • Debugging • Type inferrer Typisierung von in die DSL eingebauten Expression -> Angabe des erwarteten Rückgabetyps ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 12
  13. 13. Xbase – Am Beispiel des Domain Model Examples Model inferrer / Generator / Builder Participant • Ableiten von (Teil-)Artefakten, die sich weiterhin mit DSL integrieren sollen -> Model inferrer • Reines Erzeugen von Artefakten, die nichts von der DSL wissen müssen -> Generator • Ausführungshäufigkeit • Generator: Beim Speichern der DSL • Model inferrer: Live beim Editieren der DSL-Datei • Aufruf-Reihenfolge und Build Abhängigkeiten beachten • Unterschiedliches Verhalten vom Builder in der IDE und im automatisierten Build -> im automatisierten Build müssen unter Umständen erst Stubs erzeugt werden, damit zunächst alle Referenzen aufgelöst werden können und so trotz wechselseitiger Abhängigkeit alle Artefakte kompiliert werden können ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • DSL referenziert auf Java-Elemente, die noch nicht generiert worden sind bzw. zwar schon generiert wurden aber noch nicht kompiliert worden sind (Java Compiler lief noch nicht) © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 13
  14. 14. Xbase – Am Beispiel des Domain Model Examples Wann sollte man Xbase/JVMTypes verwenden, wann nicht? • sich über die Zielgruppe(n) der DSL klar werden • sich über die Auswertungsziele der DSL klar werden • Generatoren/Interpreter, welche Informationen müssen dazu in den DSLs erfasst werden? • sich über die Chancen und Risiken der Entscheidung klar werden • Pro • • bekommt vieles Out-Of-The-Box (Standard Editor und Generator/Compiler-Verhalten, Typ-Checks) Contra • eine fachliche DSL wird zu technisch • DSL wird mit Informationen überfrachtet Ziel-Artefakte: Code, Konfiguration, Dokumentation, Testdaten, Tests, Datenbankskripte, Buildskripte, ... • immer dran denken: man kann Xbase auch ohne JVMTypes verwenden, und die Xbase Expression-Struktur auch ohne den Standard-Xbase-Compiler nutzen ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 14
  15. 15. Xbase – Am Beispiel des Domain Model Examples Änderungen durch Xbase • Grammatik-Definition • grammar … with org.eclipse.xtext.xbase.Xbase • import 'http://www.eclipse.org/xtext/common/JavaVMTypes' as types •  die Sprache muss von Xbase erben  optional MWE2 Grammar Generator • Registrieren der neuen EPackages und GenModels + URI-Mapping • fragment = types.TypesGeneratorFragment {}  für JDT Integration u.a. in Proposals • fragment = xbase.XbaseGeneratorFragment {}  für ModelInferrer • public class …ScopeProvider extends XbaseScopeProvider • class …JvmModelInferrer extends AbstractModelInferrer  für Mapping auf JvmTypes • public class SprayTypeProvider extends XbaseTypeProvider  Typisieren von Expresssions • …RuntimeModule: @Override public Class<? extends ITypeProvider> bindITypeProvider() { … } • Im Scope-Provider localScope definieren für Expressions (it, this) ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●  für Scopen der Expressions © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 15
  16. 16. Xbase – Am Beispiel des Domain Model Examples ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Xbase in Spray © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 16
  17. 17. Xbase – Am Beispiel des Domain Model Examples ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Xbase in Spray © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 17
  18. 18. Xbase – Am Beispiel des Domain Model Examples ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● © itemis AG 18
  19. 19. ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● © itemis AG 19
  20. 20. Xbase – Am Beispiel des Domain Model Examples Erweiterungen für das Domain Model Example • DSL definieren, um das Mapping zwischen Fachmodell und Persistenz-Modell zu definieren • • Zuweisungen können auch durch Verknüpfungen erfolgen, z.B. Name = Vorname + ” “ + Nachname • • dabei müssen durch das Typsystem invalide Zuweisungen erkannt werden bzw. erst gar nicht angeboten werden Zuweisungen können Guards enthalten, z.B. Anrede = if(gender == ‘female’) “Frau” else “Herr” Analog zu Jnario eine Test-Beschreibungs-Sprache definieren, um • • Erwartungen auszudrücken: Wenn Eingabe diese Belegung Dann Ausgabe diese Belegung Abfrage-Sprache definieren ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • Test-Datensätze auszudrücken, also defacto Instanzieren des Domänen-Modells © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 20
  21. 21. Xbase – Am Beispiel des Domain Model Examples Links: Dokumentation & Blogs Xbase - A new programming language? • Xbase Language Reference • Xtext and Java • Xbase - Implementing domainspecific languages for Java • Xtext 2.1: using Xbase variables • The JvmModelInferrer, the debugger and Xbase in Xtext 2.3 • Extending Xbase • Pragmatic DSL Design with Xtext, Xbase and Xtend 2 • Five simple steps to your JVM language • Using JVM Types in Xtext 2.1 and the ImportManager • Xtext casts: Debug-support, Number literals, 7 languages, Jnario • XREPL ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 21
  22. 22. Xbase – Am Beispiel des Domain Model Examples Links: Xbase Source Code Xbase.xtext • JvmModelGenerator.xtend • XbaseCompiler.java • XbaseCompiler2.java (benutzt das neue Typsystem) • AbstractXbaseCompiler.java • XbaseInterpreter.java • JvmModelAssociator.java • JvmTypesBuilder.java • TypeConvertingCompiler.java ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 22
  23. 23. Xbase – Am Beispiel des Domain Model Examples Links: Xbase nutzende Projekte Xtend (see Xtend.xtext) • Sigasi - VHDL editor (closed source) • openHAB (see Rules.xtext, Script.xtext) • Spray (see Spray.xtext, Shape.xtext, Style.xtext) • Jnario (see Spec.xtext) • Tocea - Architecture-Designer (see QueryDsl.xtext) • Xsemantics (see Documentation, see Xsemantics.xtext) • EMF-IncQuery (see PatternLanguage.xtext) • JST (see Jst.xtext) • eLang (see EL.xtext) • MQL (see ModelQueryLanguage.xtext) • Demonstratoren: Fowlers statemachine with expressions (see MyDsl.xtext), LorenzoBettini - Xtext2 experiments, Meinte Boersma - Xtext2-DSLs ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 23
  24. 24. Xbase – Am Beispiel des Domain Model Examples Links: Domain Model Example • Example auf dem aktuellen Juno Stand: File -> New -> Other -> Examples/Xtext Examples/Xtext Domain Model Example • Example auf dem Indigo-Stand • Language Workbench Competetion 2011 – Xtext • • Doownload-Sektion mit Screencasts und den Projekt-Stände nach jedem Kapitel XbaseIntegrationTest.java ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● • Schritt für Schritt Anleitung (pdf) © itemis AG ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 24

×