Tutorial participants will learn:
- the differences between internal and external DSLs
- how to implement/the needed concepts for external textual DSL with Xtext
- defining a concrete syntax for a meta model using a grammar / deriving a meta model from a grammar = Parser rules, terminal rules, data type tules, enum rules, actions, etc.
- linking cross references while respecting different scopes for identifiers
- defining a formatter (beautifier) for a DSL
- inheriting languages
- scaling languages by using an indexing service for resolving inter-file cross references
- serializing models to textual concrete syntax
- how to customize an Xtext-based DSL editor.
- syntax based code coloring
- in-file and inter-file navigation
- outline view
- list references
- code completion as you type
- real-time feedback for violated constraints
- how to process DSL files
- constraint-based validation
- MDSD-based code generation