diff options
Diffstat (limited to 'extraplugins/alf09/src/org/eclipse/papyrus/alf/GenerateAlf.mwe2')
-rw-r--r-- | extraplugins/alf09/src/org/eclipse/papyrus/alf/GenerateAlf.mwe2 | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/extraplugins/alf09/src/org/eclipse/papyrus/alf/GenerateAlf.mwe2 b/extraplugins/alf09/src/org/eclipse/papyrus/alf/GenerateAlf.mwe2 new file mode 100644 index 00000000000..fd626100672 --- /dev/null +++ b/extraplugins/alf09/src/org/eclipse/papyrus/alf/GenerateAlf.mwe2 @@ -0,0 +1,103 @@ +module org.eclipse.papyrus.alf.Alf + +import org.eclipse.emf.mwe.utils.* +import org.eclipse.xtext.generator.* +import org.eclipse.xtext.ui.generator.* + +var grammarURI = "classpath:/org/eclipse/papyrus/alf/Alf.xtext" +var file.extensions = "alf" +var projectName = "org.eclipse.papyrus.alf" +var runtimeProject = "../${projectName}" + +Workflow { + bean = StandaloneSetup { + platformUri = "${runtimeProject}/.." + } + + component = DirectoryCleaner { + directory = "${runtimeProject}/src-gen" + } + + component = DirectoryCleaner { + directory = "${runtimeProject}.ui/src-gen" + } + + component = Generator { + pathRtProject = runtimeProject + pathUiProject = "${runtimeProject}.ui" + projectNameRt = projectName + projectNameUi = "${projectName}.ui" + language = { + uri = grammarURI + fileExtensions = file.extensions + + // Java API to access grammar elements (required by several other fragments) + fragment = grammarAccess.GrammarAccessFragment {} + + // generates Java API for the generated EPackages + fragment = ecore.EcoreGeneratorFragment { + // referencedGenModels = "uri to genmodel, uri to next genmodel" + } + + // the serialization component + fragment = parseTreeConstructor.ParseTreeConstructorFragment {} + + // a custom ResourceFactory for use with EMF + fragment = resourceFactory.ResourceFactoryFragment { + fileExtensions = file.extensions + } + + // The antlr parser generator fragment. + fragment = parser.antlr.XtextAntlrGeneratorFragment { + //options = { + // backtrack = true + //} + } + + // java-based API for validation + fragment = validation.JavaValidatorFragment { + composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + // registerForImportedPackages = true + } + + // scoping and exporting API + fragment = scoping.ImportURIScopingFragment {} + fragment = exporting.SimpleNamesFragment {} + + // scoping and exporting API + //fragment = scoping.ImportNamespacesScopingFragment {} + //fragment = exporting.QualifiedNamesFragment {} + //fragment = builder.BuilderIntegrationFragment {} + + // formatter API + fragment = formatting.FormatterFragment {} + + // labeling API + fragment = labeling.LabelProviderFragment {} + + // outline API + fragment = outline.OutlineTreeProviderFragment {} + fragment = outline.QuickOutlineFragment {} + + // quickfix API + fragment = quickfix.QuickfixProviderFragment {} + + // content assist API + fragment = contentAssist.JavaBasedContentAssistFragment {} + + // generates a more lightweight Antlr parser and lexer tailored for content assist + fragment = parser.antlr.XtextAntlrUiGeneratorFragment { + //options = { + // backtrack = true + //} + } + + // project wizard (optional) + // fragment = projectWizard.SimpleProjectWizardFragment { + // generatorProjectName = "${projectName}.generator" + // modelFileExtension = file.extensions + // } + } + } +} |