diff options
Diffstat (limited to 'plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/GenerateRoom.mwe2')
-rw-r--r-- | plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/GenerateRoom.mwe2 | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/GenerateRoom.mwe2 b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/GenerateRoom.mwe2 new file mode 100644 index 000000000..e88ae0055 --- /dev/null +++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/GenerateRoom.mwe2 @@ -0,0 +1,129 @@ +/******************************************************************************* + * Copyright (c) 2010 protos software gmbh (http://www.protos.de). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * CONTRIBUTORS: + * Thomas Schuetz and Henrik Rentz-Reichert (initial contribution) + * + *******************************************************************************/ + + +module org.eclipse.etrice.core.Room + +import org.eclipse.emf.mwe.utils.* +import org.eclipse.xtext.generator.* +import org.eclipse.xtext.ui.generator.* + +var grammarURI = "classpath:/org/eclipse/etrice/core/Room.xtext" +var file.extensions = "room" +var projectName = "org.eclipse.etrice.core.room" +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 following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/ + fragment = AntlrDelegatingFragment {} + + /* + If you don't want to use the Antlr fragment for some reason, remove the antlr fragment and uncomment the packrat parser fragment below. + fragment = parser.PackratParserFragment {} + */ + + // check-based API for validation + /* + fragment = validation.CheckFragment {} + */ + + // java-based API for validation + fragment = validation.JavaValidatorFragment { + composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" + composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + } + + // scoping and exporting API + /* + fragment = scoping.ImportURIScopingFragment {} + fragment = exporting.SimpleNamesFragment {} + */ + + // scoping and exporting API + fragment = scoping.ImportNamespacesScopingFragment {} + fragment = exporting.QualifiedNamesFragment {} + + // formatter API + fragment = formatting.FormatterFragment {} + + // labeling API + fragment = labeling.LabelProviderFragment {} + + // outline API + fragment = outline.TransformerFragment {} + fragment = outline.OutlineNodeAdapterFactoryFragment {} + fragment = outline.QuickOutlineFragment {} + + // java-based API for content assistance + fragment = contentAssist.JavaBasedContentAssistFragment {} + + // the following fragment tries to use the Antlr based content assist + // fragment which can be downloaded from http://www.itemis.com + // and will be ignored if it's not available. + fragment = DelegatingGeneratorFragment { + delegate = "de.itemis.xtext.antlr.XtextAntlrUiGeneratorFragment" + message="You are generating without ANTLR. It is highly recommended to download and use the plugin \'de.itemis.xtext.antlr\' \n\t using the update site http://download.itemis.com/updates/." + } + + fragment = builder.BuilderIntegrationFragment {} + + // project wizard (optional) + /* + fragment = projectWizard.SimpleProjectWizardFragment { + generatorProjectName = "${projectName}.generator" + modelFileExtension = file.extensions + } + */ + + // quickfix API + fragment = quickfix.QuickfixProviderFragment {} + } + } +} |