Skip to main content
aboutsummaryrefslogblamecommitdiffstats
blob: bdae5cd6c87463ad1d405e3e9b69c1605d08465e (plain) (tree)
1
2
3
4
5
6
7
8


                                                                                
                                                                       
                                                           


                                         




















                                                                                 

                                                                                                                                           



































































                                                                                                                                                 
                                                                









































                                                                                                  
                                                            












                                                                      
/*******************************************************************************
 * Copyright (c) 2012 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 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 * 
 * CONTRIBUTORS:
 * 		Henrik Rentz-Reichert (initial contribution)
 * 
 *******************************************************************************/

module org.eclipse.etrice.core.etmap.GenerateETMap

import org.eclipse.emf.mwe.utils.*
import org.eclipse.xtext.generator.*
import org.eclipse.xtext.ui.generator.*

var grammarURI = "classpath:/org/eclipse/etrice/core/etmap/ETMap.xtext"
var file.extensions = "etmap"
var projectName = "org.eclipse.etrice.core.etmap"
var runtimeProject = "../${projectName}"

Workflow {
    bean = StandaloneSetup {
            scanClassPath = true
            platformUri = "${runtimeProject}/.."
            registerGenModelFile = "platform:/resource/org.eclipse.etrice.core.common/src-gen/org/eclipse/etrice/core/common/Base.genmodel"
        	registerGeneratedEPackage = "org.eclipse.etrice.core.common.base.BasePackage"
            registerGeneratedEPackage = "org.eclipse.etrice.core.room.RoomPackage"
	        registerGenModelFile = "platform:/resource/org.eclipse.etrice.core.room/src-gen/org/eclipse/etrice/core/Room.genmodel"
            registerGeneratedEPackage = "org.eclipse.etrice.core.etphys.eTPhys.ETPhysPackage"
	        registerGenModelFile = "platform:/resource/org.eclipse.etrice.core.etphys/src-gen/org/eclipse/etrice/core/etphys/ETPhys.genmodel"
        }
    
        component = DirectoryCleaner {
            directory = "${runtimeProject}/src-gen"
        }
    
        component = DirectoryCleaner {
            directory = "${runtimeProject}.ui/src-gen"
        }
    
        component = Generator {
            pathRtProject = runtimeProject
            pathUiProject = "${runtimeProject}.ui"
	        pathTestProject = "../../tests/${projectName}.tests"
            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.xtext.xbase/model/Xbase.genmodel,
                //  platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel
                // "
                }
    
                // Serializer 2.0
                fragment = serializer.SerializerFragment {
                	generateStub = false
                }
                
                // the serialization component (1.0)
                // 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"
                }
    
                // scoping and exporting API
                // fragment = scoping.ImportURIScopingFragment {}
                // fragment = exporting.SimpleNamesFragment {}
    
                // scoping and exporting API
	            fragment = scoping.ImportURIScopingFragment {}
                fragment = exporting.QualifiedNamesFragment {}
                fragment = builder.BuilderIntegrationFragment {}
    
                // generator API
                fragment = generator.GeneratorFragment {
                    generateMwe = false
                    generateJavaMain = false
                }
    
                // 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 {}
    
                // generates junit test support classes into Generator#pathTestProject
                fragment = junit.Junit4Fragment {}
    
                // project wizard (optional)
                // fragment = projectWizard.SimpleProjectWizardFragment {
                //      generatorProjectName = "${projectName}"
                //      modelFileExtension = file.extensions
                // }
    
                // rename refactoring
                fragment = refactoring.RefactorElementNameFragment {}
    
                // provides the necessary bindings for java types integration
                //fragment = types.TypesGeneratorFragment {}
    
                // generates the required bindings only if the grammar inherits from Xbase
                //fragment = xbase.XbaseGeneratorFragment {}
    
                // provides a preference page for template proposals
                fragment = templates.CodetemplatesGeneratorFragment {}
    
                // provides a compare view
                fragment = compare.CompareFragment {
                     fileExtensions = file.extensions
                }
    
            }
        }
}

Back to the top