diff options
Diffstat (limited to 'extraplugins/alf/org.eclipse.papyrus.operation.editor.xtext/src/org/eclipse/papyrus/operation/editor/xtext/GenerateOperation.mwe2')
-rw-r--r-- | extraplugins/alf/org.eclipse.papyrus.operation.editor.xtext/src/org/eclipse/papyrus/operation/editor/xtext/GenerateOperation.mwe2 | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/extraplugins/alf/org.eclipse.papyrus.operation.editor.xtext/src/org/eclipse/papyrus/operation/editor/xtext/GenerateOperation.mwe2 b/extraplugins/alf/org.eclipse.papyrus.operation.editor.xtext/src/org/eclipse/papyrus/operation/editor/xtext/GenerateOperation.mwe2 new file mode 100644 index 00000000000..2917a14adbb --- /dev/null +++ b/extraplugins/alf/org.eclipse.papyrus.operation.editor.xtext/src/org/eclipse/papyrus/operation/editor/xtext/GenerateOperation.mwe2 @@ -0,0 +1,107 @@ +module org.eclipse.papyrus.operation.editor.xtext.Operation + +import org.eclipse.emf.mwe.utils.* +import org.eclipse.xtext.generator.* +import org.eclipse.xtext.ui.generator.* + +var grammarURI = "classpath:/org/eclipse/papyrus/operation/editor/xtext/Operation.xtext" +var file.extensions = "operation" +var projectName = "org.eclipse.papyrus.operation.editor.xtext" +var runtimeProject = "../${projectName}" + +Workflow { + bean = StandaloneSetup { + platformUri = "${runtimeProject}/.." + registerGeneratedEPackage = "org.eclipse.uml2.uml.UMLPackage" + registerGeneratedEPackage = "org.eclipse.uml2.codegen.ecore.genmodel.GenModelPackage" + uriMap = {from="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore" + to="platform:/resource/org.eclipse.papyrus.operation.editor.xtext/model/Ecore.ecore"} + uriMap = {from="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel" + to="platform:/resource/org.eclipse.papyrus.operation.editor.xtext/model/Ecore.genmodel"} + } + + 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 = "platform:/resource/org.eclipse.papyrus.operation.editor.xtext/model/UML.genmodel" + referencedGenModels = "platform:/resource/org.eclipse.papyrus.alf/src-gen/org/eclipse/papyrus/alf/Alf.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" + composedCheck = "org.eclipse.papyrus.alf.validation.AlfJavaValidator" + //basePackage = "org.eclipse.papyrus.alf.alf.AlfPackage" + } + + // 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 {} + + // project wizard (optional) + // fragment = projectWizard.SimpleProjectWizardFragment { + // generatorProjectName = "${projectName}.generator" + // modelFileExtension = file.extensions + // } + } + } +} |