Features
Xtext is part of the Eclipse Modeling Project and integrates seamlessly with other Modeling Project technologies such as EMF, GMF, M2T and parts of EMFT. It helps implement parsers, linkers, compilers, and interpreters. Development with Xtext is optimized for rapid application development: adding a new feature to an existing DSL can be accomplished in mere minutes. Highly sophisticated languages can be quickly and easily implemented with this simple technology.
Syntax-driven Editor
Once you have completed your language, you can use what Xtext generates to manipulate artifacts written in that language. Not only does Xtext provide a powerful syntax-driven editor for editing Xtext grammars, it also generates a feature-rich editor that is specific to your language. That editor knows about your language’s keywords and where to place them because it knows about all the syntactic constructs in your grammar. It includes all kinds of sophisticated features such as syntax coloring, code completion, validation, and more. In addition to this basic level of support derived from the grammar, you can even introduce powerful semantic aspects by programming them in Java. All in all, with the editor generated by Xtext, it is very easy to work with text files that conform to your language.
Code Generation
Now that you can easily create artifacts in your language, what are you able to do with them? A typical requirement is to generate code from those artifacts, often in some other existing language such Java, C++, or XML. This is where code generation comes in to play and where Xtext's skeleton code generator is particularly useful. Typically you use that code generator as a starting point to produce whatever you need, e.g., Java source code, documentation, overview graphics, a database scheme, and so on. Xtext offers specialized support for textual output formats, but it is even possible to generate binary artifacts.
...And More
The above is just a short overview of some prominent aspects of Xtext. Contact us to find out more about what Xtext can do for you!
