This MWE2 fragment reads your Xtext grammar and converts it to Langium. If you are using a predefined Ecore model (not generated), it will also be converted to Langium as a type definition file.
Add the https://typefox.github.io/xtext2langium/download/updates/v0.4.0/
update site to your .target
file as an additional location.
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="io.typefox.xtext2langium" version="0.0.0"/>
<repository location="https://typefox.github.io/xtext2langium/download/updates/v0.4.0/"/>
</location>
<dependency>
<groupId>io.typefox.xtext2langium</groupId>
<artifactId>io.typefox.xtext2langium</artifactId>
<version>0.4.0</version>
</dependency>
io.typefox.xtext2langium:io.typefox.xtext2langium:0.4.0
Add the fragment to you Language configuration in the MWE2 file and configure the output path.
language = StandardLanguage {
name = "io.typefox.Example"
// ... //
fragment = io.typefox.xtext2langium.Xtext2LangiumFragment {
outputPath = './langium'
}
After running the workflow you will find the generated Langium output in ./langium
folder.
outputPath
- Target output folderprefixEnumLiterals
- Iftrue
, enum literal types will be prefixed with the enum type name to avoid name conflicts with other enum literals. Default istrue
. Example:enum Color: RED;
will create:Color returns Color: Color_RED; Color_RED returns string: 'RED';
useStringAsEnumRuleType
- Iftrue
, Enum types will be handled as strings. Only relevant for generated metamodels. Default isfalse
.generateEcoreTypes
- Iftrue
, types from the Ecore metamodel will also be generated. Iffalse
, ecore data types will be replaced with Langium data types. Types that are not convertible to Langium built in types will be generated as string. Default isfalse
.removeOverridenRules
- In case a rule from the imported grammar was overwritten, Langium will report a duplicate error. Iftrue
, the super grammar rules will be skipped in favour of the current grammar rules. Default isfalse
.